UNPKG

vue-typed-mixins

Version:
8 lines (7 loc) 651 B
import Vue, { VueConstructor, ComponentOptions } from 'vue'; declare type VueMixin = VueConstructor | ComponentOptions<never>; declare type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends (k: infer I) => void ? I : never; declare type ExtractInstance<T> = T extends VueConstructor<infer V> ? V : T extends ComponentOptions<infer V> ? V : never; declare type MixedVueConstructor<Mixins extends VueMixin[]> = Mixins extends (infer T)[] ? VueConstructor<UnionToIntersection<ExtractInstance<T>> & Vue> : never; export default function mixins<Mixins extends VueMixin[]>(...mixins: Mixins): MixedVueConstructor<Mixins>; export {};