import Vue , { ComponentOptions } from 'vue' ; import { VirtualClass } from './common' ; export template T param { { new ( ) : T ; } } component returns { VirtualClass < T > } export function Mixin < T > ( component ) { return Vue . extend ( { mixins : [ component as ComponentOptions < Vue > | typeof Vue ] } ) as any ; } export template T param { ... { new ( ) : any ; } [ ] } components returns { VirtualClass < T > } export function Mixins < T > ( ... components ) { return Vue . extend ( { mixins : components as Array < ComponentOptions < Vue > | typeof Vue > } ) as any ; }