@@ -3,7 +3,11 @@ import { VNode } from './vnode'
3
3
import { ComponentOptions as Vue2ComponentOptions } from './options'
4
4
import { EmitsOptions , SetupContext } from './v3-setup-context'
5
5
import { Data , LooseRequired , UnionToIntersection } from './common'
6
- import { ComponentPropsOptions , ExtractPropTypes } from './v3-component-props'
6
+ import {
7
+ ComponentPropsOptions ,
8
+ ExtractDefaultPropTypes ,
9
+ ExtractPropTypes
10
+ } from './v3-component-props'
7
11
import { CreateComponentPublicInstance } from './v3-component-public-instance'
8
12
export { ComponentPropsOptions } from './v3-component-props'
9
13
@@ -60,7 +64,8 @@ type ExtractOptionProp<T> = T extends ComponentOptionsBase<
60
64
any , // M
61
65
any , // Mixin
62
66
any , // Extends
63
- any // EmitsOptions
67
+ any , // EmitsOptions
68
+ any // Defaults
64
69
>
65
70
? unknown extends P
66
71
? { }
@@ -76,10 +81,11 @@ export interface ComponentOptionsBase<
76
81
Mixin extends ComponentOptionsMixin ,
77
82
Extends extends ComponentOptionsMixin ,
78
83
Emits extends EmitsOptions ,
79
- EmitNames extends string = string
84
+ EmitNames extends string = string ,
85
+ Defaults = { }
80
86
> extends Omit <
81
87
Vue2ComponentOptions < Vue , D , M , C , Props > ,
82
- 'data' | 'computed' | 'method ' | 'setup' | 'props' | 'mixins' | 'extends'
88
+ 'data' | 'computed' | 'methods ' | 'setup' | 'props' | 'mixins' | 'extends'
83
89
> ,
84
90
ComponentCustomOptions {
85
91
// rewrite options api types
@@ -88,6 +94,7 @@ export interface ComponentOptionsBase<
88
94
vm : CreateComponentPublicInstance < Props , { } , { } , { } , M , Mixin , Extends >
89
95
) => D
90
96
computed ?: C
97
+ methods ?: M
91
98
mixins ?: Mixin [ ]
92
99
extends ?: Extends
93
100
emits ?: ( Emits | EmitNames [ ] ) & ThisType < void >
@@ -102,6 +109,8 @@ export interface ComponentOptionsBase<
102
109
RawBindings ,
103
110
Emits
104
111
>
112
+
113
+ __defaults ?: Defaults
105
114
}
106
115
107
116
export type ComponentOptionsMixin = ComponentOptionsBase <
@@ -112,6 +121,8 @@ export type ComponentOptionsMixin = ComponentOptionsBase<
112
121
any ,
113
122
any ,
114
123
any ,
124
+ any ,
125
+ any ,
115
126
any
116
127
>
117
128
@@ -133,7 +144,8 @@ export type ComponentOptionsWithProps<
133
144
Extends extends ComponentOptionsMixin = ComponentOptionsMixin ,
134
145
Emits extends EmitsOptions = { } ,
135
146
EmitsNames extends string = string ,
136
- Props = ExtractPropTypes < PropsOptions >
147
+ Props = ExtractPropTypes < PropsOptions > ,
148
+ Defaults = ExtractDefaultPropTypes < PropsOptions >
137
149
> = ComponentOptionsBase <
138
150
Props ,
139
151
RawBindings ,
@@ -143,7 +155,8 @@ export type ComponentOptionsWithProps<
143
155
Mixin ,
144
156
Extends ,
145
157
Emits ,
146
- EmitsNames
158
+ EmitsNames ,
159
+ Defaults
147
160
> & {
148
161
props ?: PropsOptions
149
162
} & ThisType <
@@ -179,7 +192,8 @@ export type ComponentOptionsWithArrayProps<
179
192
Mixin ,
180
193
Extends ,
181
194
Emits ,
182
- EmitsNames
195
+ EmitsNames ,
196
+ { }
183
197
> & {
184
198
props ?: PropNames [ ]
185
199
} & ThisType <
@@ -214,7 +228,8 @@ export type ComponentOptionsWithoutProps<
214
228
Mixin ,
215
229
Extends ,
216
230
Emits ,
217
- EmitsNames
231
+ EmitsNames ,
232
+ { }
218
233
> & {
219
234
props ?: undefined
220
235
} & ThisType <
0 commit comments