123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128 |
- import {
- Component,
- AsyncComponent,
- ComponentOptions,
- FunctionalComponentOptions,
- WatchOptionsWithHandler,
- WatchHandler,
- DirectiveOptions,
- DirectiveFunction,
- RecordPropsDefinition,
- ThisTypedComponentOptionsWithArrayProps,
- ThisTypedComponentOptionsWithRecordProps,
- WatchOptions,
- } from "./options";
- import { VNode, VNodeData, VNodeChildren, NormalizedScopedSlot } from "./vnode";
- import { PluginFunction, PluginObject } from "./plugin";
-
- export interface CreateElement {
- (tag?: string | Component<any, any, any, any> | AsyncComponent<any, any, any, any> | (() => Component), children?: VNodeChildren): VNode;
- (tag?: string | Component<any, any, any, any> | AsyncComponent<any, any, any, any> | (() => Component), data?: VNodeData, children?: VNodeChildren): VNode;
- }
-
- export interface Vue {
- readonly $el: Element;
- readonly $options: ComponentOptions<Vue>;
- readonly $parent: Vue;
- readonly $root: Vue;
- readonly $children: Vue[];
- readonly $refs: { [key: string]: Vue | Element | Vue[] | Element[] };
- readonly $slots: { [key: string]: VNode[] | undefined };
- readonly $scopedSlots: { [key: string]: NormalizedScopedSlot | undefined };
- readonly $isServer: boolean;
- readonly $data: Record<string, any>;
- readonly $props: Record<string, any>;
- readonly $ssrContext: any;
- readonly $vnode: VNode;
- readonly $attrs: Record<string, string>;
- readonly $listeners: Record<string, Function | Function[]>;
-
- $mount(elementOrSelector?: Element | string, hydrating?: boolean): this;
- $forceUpdate(): void;
- $destroy(): void;
- $set: typeof Vue.set;
- $delete: typeof Vue.delete;
- $watch(
- expOrFn: string,
- callback: (this: this, n: any, o: any) => void,
- options?: WatchOptions
- ): (() => void);
- $watch<T>(
- expOrFn: (this: this) => T,
- callback: (this: this, n: T, o: T) => void,
- options?: WatchOptions
- ): (() => void);
- $on(event: string | string[], callback: Function): this;
- $once(event: string | string[], callback: Function): this;
- $off(event?: string | string[], callback?: Function): this;
- $emit(event: string, ...args: any[]): this;
- $nextTick(callback: (this: this) => void): void;
- $nextTick(): Promise<void>;
- $createElement: CreateElement;
- }
-
- export type CombinedVueInstance<Instance extends Vue, Data, Methods, Computed, Props> = Data & Methods & Computed & Props & Instance;
- export type ExtendedVue<Instance extends Vue, Data, Methods, Computed, Props> = VueConstructor<CombinedVueInstance<Instance, Data, Methods, Computed, Props> & Vue>;
-
- export interface VueConfiguration {
- silent: boolean;
- optionMergeStrategies: any;
- devtools: boolean;
- productionTip: boolean;
- performance: boolean;
- errorHandler(err: Error, vm: Vue, info: string): void;
- warnHandler(msg: string, vm: Vue, trace: string): void;
- ignoredElements: (string | RegExp)[];
- keyCodes: { [key: string]: number | number[] };
- async: boolean;
- }
-
- export interface VueConstructor<V extends Vue = Vue> {
- new <Data = object, Methods = object, Computed = object, PropNames extends string = never>(options?: ThisTypedComponentOptionsWithArrayProps<V, Data, Methods, Computed, PropNames>): CombinedVueInstance<V, Data, Methods, Computed, Record<PropNames, any>>;
- // ideally, the return type should just contain Props, not Record<keyof Props, any>. But TS requires to have Base constructors with the same return type.
- new <Data = object, Methods = object, Computed = object, Props = object>(options?: ThisTypedComponentOptionsWithRecordProps<V, Data, Methods, Computed, Props>): CombinedVueInstance<V, Data, Methods, Computed, Record<keyof Props, any>>;
- new (options?: ComponentOptions<V>): CombinedVueInstance<V, object, object, object, Record<keyof object, any>>;
-
- extend<Data, Methods, Computed, PropNames extends string = never>(options?: ThisTypedComponentOptionsWithArrayProps<V, Data, Methods, Computed, PropNames>): ExtendedVue<V, Data, Methods, Computed, Record<PropNames, any>>;
- extend<Data, Methods, Computed, Props>(options?: ThisTypedComponentOptionsWithRecordProps<V, Data, Methods, Computed, Props>): ExtendedVue<V, Data, Methods, Computed, Props>;
- extend<PropNames extends string = never>(definition: FunctionalComponentOptions<Record<PropNames, any>, PropNames[]>): ExtendedVue<V, {}, {}, {}, Record<PropNames, any>>;
- extend<Props>(definition: FunctionalComponentOptions<Props, RecordPropsDefinition<Props>>): ExtendedVue<V, {}, {}, {}, Props>;
- extend(options?: ComponentOptions<V>): ExtendedVue<V, {}, {}, {}, {}>;
-
- nextTick<T>(callback: (this: T) => void, context?: T): void;
- nextTick(): Promise<void>
- set<T>(object: object, key: string | number, value: T): T;
- set<T>(array: T[], key: number, value: T): T;
- delete(object: object, key: string | number): void;
- delete<T>(array: T[], key: number): void;
-
- directive(
- id: string,
- definition?: DirectiveOptions | DirectiveFunction
- ): DirectiveOptions;
- filter(id: string, definition?: Function): Function;
-
- component(id: string): VueConstructor;
- component<VC extends VueConstructor>(id: string, constructor: VC): VC;
- component<Data, Methods, Computed, Props>(id: string, definition: AsyncComponent<Data, Methods, Computed, Props>): ExtendedVue<V, Data, Methods, Computed, Props>;
- component<Data, Methods, Computed, PropNames extends string = never>(id: string, definition?: ThisTypedComponentOptionsWithArrayProps<V, Data, Methods, Computed, PropNames>): ExtendedVue<V, Data, Methods, Computed, Record<PropNames, any>>;
- component<Data, Methods, Computed, Props>(id: string, definition?: ThisTypedComponentOptionsWithRecordProps<V, Data, Methods, Computed, Props>): ExtendedVue<V, Data, Methods, Computed, Props>;
- component<PropNames extends string>(id: string, definition: FunctionalComponentOptions<Record<PropNames, any>, PropNames[]>): ExtendedVue<V, {}, {}, {}, Record<PropNames, any>>;
- component<Props>(id: string, definition: FunctionalComponentOptions<Props, RecordPropsDefinition<Props>>): ExtendedVue<V, {}, {}, {}, Props>;
- component(id: string, definition?: ComponentOptions<V>): ExtendedVue<V, {}, {}, {}, {}>;
-
- use<T>(plugin: PluginObject<T> | PluginFunction<T>, options?: T): VueConstructor<V>;
- use(plugin: PluginObject<any> | PluginFunction<any>, ...options: any[]): VueConstructor<V>;
- mixin(mixin: VueConstructor | ComponentOptions<Vue>): VueConstructor<V>;
- compile(template: string): {
- render(createElement: typeof Vue.prototype.$createElement): VNode;
- staticRenderFns: (() => VNode)[];
- };
-
- observable<T>(obj: T): T;
-
- config: VueConfiguration;
- version: string;
- }
-
- export const Vue: VueConstructor;
|