| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- import { Vue } from "./vue";
- import { VNode, VNodeData, VNodeDirective } from "./vnode";
- type Constructor = {
- new (...args: any[]): any;
- }
- type $createElement = typeof Vue.prototype.$createElement;
- export interface ComponentOptions {
- data?: Object | ( (this: Vue) => Object );
- props?: string[] | { [key: string]: PropOptions | Constructor | Constructor[] };
- propsData?: Object;
- computed?: { [key: string]: ((this: Vue) => any) | ComputedOptions };
- methods?: { [key: string]: Function };
- watch?: { [key: string]: ({ handler: WatchHandler } & WatchOptions) | WatchHandler | string };
- el?: Element | String;
- template?: string;
- render?(createElement: $createElement): VNode;
- staticRenderFns?: (() => VNode)[];
- beforeCreate?(): void;
- created?(): void;
- beforeDestroy?(): void;
- destroyed?(): void;
- beforeMount?(): void;
- mounted?(): void;
- beforeUpdate?(): void;
- updated?(): void;
- directives?: { [key: string]: DirectiveOptions | DirectiveFunction };
- components?: { [key: string]: ComponentOptions | FunctionalComponentOptions | typeof Vue };
- transitions?: { [key: string]: Object };
- filters?: { [key: string]: Function };
- parent?: Vue;
- mixins?: (ComponentOptions | typeof Vue)[];
- name?: string;
- extends?: ComponentOptions | typeof Vue;
- delimiters?: [string, string];
- }
- export interface FunctionalComponentOptions {
- props?: string[] | { [key: string]: PropOptions | Constructor | Constructor[] };
- functional: boolean;
- render(this: never, createElement: $createElement, context: RenderContext): VNode;
- name?: string;
- }
- export interface RenderContext {
- props: any;
- children: VNode[];
- slots: any;
- data: VNodeData;
- parent: Vue;
- }
- export interface PropOptions {
- type?: Constructor | Constructor[] | null;
- required?: boolean;
- default?: any;
- validator?(value: any): boolean;
- }
- export interface ComputedOptions {
- get?(this: Vue): any;
- set?(this: Vue, value: any): void;
- cache?: boolean;
- }
- export type WatchHandler = <T>(val: T, oldVal: T) => void;
- export interface WatchOptions {
- deep?: boolean;
- immediate?: boolean;
- }
- export type DirectiveFunction = (
- el: HTMLElement,
- binding: VNodeDirective,
- vnode: VNode,
- oldVnode: VNode
- ) => void;
- export interface DirectiveOptions {
- bind?: DirectiveFunction;
- update?: DirectiveFunction;
- componentUpdated?: DirectiveFunction;
- unbind?: DirectiveFunction;
- }
|