@@ -14,7 +14,6 @@ import { VNode, VNodeData, VNodeChildren, NormalizedScopedSlot } from './vnode'
14
14
import { PluginFunction , PluginObject } from './plugin'
15
15
import { DefineComponent } from './v3-define-component'
16
16
import { nextTick } from './v3-generated'
17
- import { ComponentPublicInstance } from './v3-component-public-instance'
18
17
19
18
export interface CreateElement {
20
19
(
@@ -41,29 +40,27 @@ type NeverFallback<T, D> = [T] extends [never] ? D : T
41
40
export interface Vue <
42
41
Data = Record < string , any > ,
43
42
Props = Record < string , any > ,
44
- Parent = never ,
45
- Root = never ,
46
- Children = never ,
43
+ Instance = never ,
47
44
Options = never ,
48
45
Emit = ( event : string , ...args : any [ ] ) => Vue
49
46
> {
50
47
// properties with different types in defineComponent()
51
48
readonly $data : Data
52
49
readonly $props : Props
53
- readonly $parent : NeverFallback < Parent , Vue >
54
- readonly $root : NeverFallback < Root , Vue >
55
- readonly $children : NeverFallback < Children , Vue [ ] >
50
+ readonly $parent : NeverFallback < Instance , Vue > | null
51
+ readonly $root : NeverFallback < Instance , Vue >
52
+ readonly $children : NeverFallback < Instance , Vue > [ ]
56
53
readonly $options : NeverFallback < Options , ComponentOptions < Vue > >
57
54
$emit : Emit
58
55
59
56
// Vue 2 only or shared
60
57
readonly $el : Element
61
58
readonly $refs : {
62
59
[ key : string ] :
60
+ | NeverFallback < Instance , Vue >
63
61
| Vue
64
62
| Element
65
- | ComponentPublicInstance
66
- | ( Vue | Element | ComponentPublicInstance ) [ ]
63
+ | ( NeverFallback < Instance , Vue > | Vue | Element ) [ ]
67
64
| undefined
68
65
}
69
66
readonly $slots : { [ key : string ] : VNode [ ] | undefined }
0 commit comments