UNPKG

1.86 kBTypeScriptView Raw
1import { Vue } from "./vue";
2
3// Scoped slots are guaranteed to return Array of VNodes starting in 2.6
4export type ScopedSlot = (props: any) => ScopedSlotChildren;
5export type ScopedSlotChildren = VNode[] | undefined;
6
7// Relaxed type compatible with $createElement
8export type VNodeChildren = VNodeChildrenArrayContents | [ScopedSlot] | string | boolean | null | undefined;
9export interface VNodeChildrenArrayContents extends Array<VNodeChildren | VNode> {}
10
11export interface VNode {
12 tag?: string;
13 data?: VNodeData;
14 children?: VNode[];
15 text?: string;
16 elm?: Node;
17 ns?: string;
18 context?: Vue;
19 key?: string | number;
20 componentOptions?: VNodeComponentOptions;
21 componentInstance?: Vue;
22 parent?: VNode;
23 raw?: boolean;
24 isStatic?: boolean;
25 isRootInsert: boolean;
26 isComment: boolean;
27}
28
29export interface VNodeComponentOptions {
30 Ctor: typeof Vue;
31 propsData?: object;
32 listeners?: object;
33 children?: VNode[];
34 tag?: string;
35}
36
37export interface VNodeData {
38 key?: string | number;
39 slot?: string;
40 scopedSlots?: { [key: string]: ScopedSlot | undefined };
41 ref?: string;
42 refInFor?: boolean;
43 tag?: string;
44 staticClass?: string;
45 class?: any;
46 staticStyle?: { [key: string]: any };
47 style?: object[] | object;
48 props?: { [key: string]: any };
49 attrs?: { [key: string]: any };
50 domProps?: { [key: string]: any };
51 hook?: { [key: string]: Function };
52 on?: { [key: string]: Function | Function[] };
53 nativeOn?: { [key: string]: Function | Function[] };
54 transition?: object;
55 show?: boolean;
56 inlineTemplate?: {
57 render: Function;
58 staticRenderFns: Function[];
59 };
60 directives?: VNodeDirective[];
61 keepAlive?: boolean;
62}
63
64export interface VNodeDirective {
65 name: string;
66 value?: any;
67 oldValue?: any;
68 expression?: any;
69 arg?: string;
70 oldArg?: string;
71 modifiers?: { [key: string]: boolean };
72}