UNPKG

vue-class-component

Version:

ES201X/TypeScript class decorator for Vue components

20 lines (19 loc) 1.05 kB
import { ComponentOptions } from 'vue'; import { Vue, VueBase, VueMixin } from './vue'; export declare function Options<V extends Vue>(options: ComponentOptions & ThisType<V>): <VC extends VueBase>(target: VC) => VC; export interface VueDecorator { (Ctor: VueBase): void; (target: Vue, key: string): void; (target: Vue, key: string, index: number): void; } export declare function createDecorator(factory: (options: ComponentOptions, key: string, index: number) => void): VueDecorator; interface PropsMixin { new <Props = unknown>(...args: any[]): { $props: Props; }; } declare type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends (k: infer I) => void ? I : never; declare type ExtractInstance<T> = T extends VueMixin<infer V> ? V : never; declare type MixedVueBase<Mixins extends VueMixin[]> = Mixins extends (infer T)[] ? VueBase<UnionToIntersection<ExtractInstance<T>> & Vue> & PropsMixin : never; export declare function mixins<T extends VueMixin[]>(...Ctors: T): MixedVueBase<T>; export {};