Skip to content

Commit 8071ef4

Browse files
committed
fix(types): restore DefineComponent argument order
This is necessary for compatibility w/ tsc-generated component types using DefineComponent. revert #5416 reopen #3796 fix #5967
1 parent 583b625 commit 8071ef4

File tree

5 files changed

+64
-186
lines changed

5 files changed

+64
-186
lines changed

packages/runtime-core/src/apiAsyncComponent.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ export function defineAsyncComponent<
111111
)
112112
}
113113

114-
return defineComponent<{}>({
114+
return defineComponent({
115115
name: 'AsyncComponentWrapper',
116116

117117
__asyncLoader: load,

packages/runtime-core/src/apiDefineComponent.ts

Lines changed: 32 additions & 141 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,7 @@ import {
66
ComponentOptionsWithObjectProps,
77
ComponentOptionsMixin,
88
RenderFunction,
9-
ComponentOptionsBase,
10-
ComponentProvideOptions
9+
ComponentOptionsBase
1110
} from './componentOptions'
1211
import {
1312
SetupContext,
@@ -41,8 +40,6 @@ export type DefineComponent<
4140
Extends extends ComponentOptionsMixin = ComponentOptionsMixin,
4241
E extends EmitsOptions = {},
4342
EE extends string = string,
44-
Provide extends ComponentProvideOptions = ComponentProvideOptions,
45-
RawOptions extends {} = {},
4643
PP = PublicProps,
4744
Props = Readonly<
4845
PropsOrPropOptions extends ComponentPropsOptions
@@ -51,23 +48,22 @@ export type DefineComponent<
5148
> &
5249
({} extends E ? {} : EmitsToProps<E>),
5350
Defaults = ExtractDefaultPropTypes<PropsOrPropOptions>
54-
> = RawOptions &
55-
ComponentPublicInstanceConstructor<
56-
CreateComponentPublicInstance<
57-
Props,
58-
RawBindings,
59-
D,
60-
C,
61-
M,
62-
Mixin,
63-
Extends,
64-
E,
65-
PP & Props,
66-
Defaults,
67-
true
68-
> &
69-
Props
51+
> = ComponentPublicInstanceConstructor<
52+
CreateComponentPublicInstance<
53+
Props,
54+
RawBindings,
55+
D,
56+
C,
57+
M,
58+
Mixin,
59+
Extends,
60+
E,
61+
PP & Props,
62+
Defaults,
63+
true
7064
> &
65+
Props
66+
> &
7167
ComponentOptionsBase<
7268
Props,
7369
RawBindings,
@@ -78,8 +74,7 @@ export type DefineComponent<
7874
Extends,
7975
E,
8076
EE,
81-
Defaults,
82-
Provide
77+
Defaults
8378
> &
8479
PP
8580

@@ -109,20 +104,9 @@ export function defineComponent<
109104
Mixin extends ComponentOptionsMixin = ComponentOptionsMixin,
110105
Extends extends ComponentOptionsMixin = ComponentOptionsMixin,
111106
E extends EmitsOptions = EmitsOptions,
112-
EE extends string = string,
113-
Provide extends ComponentProvideOptions = ComponentProvideOptions,
114-
Options extends ComponentOptionsWithoutProps<
115-
Props,
116-
RawBindings,
117-
D,
118-
C,
119-
M,
120-
Mixin,
121-
Extends,
122-
E,
123-
EE,
124-
Provide
125-
> = ComponentOptionsWithoutProps<
107+
EE extends string = string
108+
>(
109+
options: ComponentOptionsWithoutProps<
126110
Props,
127111
RawBindings,
128112
D,
@@ -131,36 +115,9 @@ export function defineComponent<
131115
Mixin,
132116
Extends,
133117
E,
134-
EE,
135-
Provide
118+
EE
136119
>
137-
>(
138-
options: Options &
139-
ComponentOptionsWithoutProps<
140-
Props,
141-
RawBindings,
142-
D,
143-
C,
144-
M,
145-
Mixin,
146-
Extends,
147-
E,
148-
EE,
149-
Provide
150-
>
151-
): DefineComponent<
152-
Props,
153-
RawBindings,
154-
D,
155-
C,
156-
M,
157-
Mixin,
158-
Extends,
159-
E,
160-
EE,
161-
Provide,
162-
Options
163-
>
120+
): DefineComponent<Props, RawBindings, D, C, M, Mixin, Extends, E, EE>
164121

165122
// overload 3: object format with array props declaration
166123
// props inferred as { [key in PropNames]?: any }
@@ -174,20 +131,9 @@ export function defineComponent<
174131
Mixin extends ComponentOptionsMixin = ComponentOptionsMixin,
175132
Extends extends ComponentOptionsMixin = ComponentOptionsMixin,
176133
E extends EmitsOptions = Record<string, any>,
177-
EE extends string = string,
178-
Provide extends ComponentProvideOptions = ComponentProvideOptions,
179-
Options extends ComponentOptionsWithArrayProps<
180-
PropNames,
181-
RawBindings,
182-
D,
183-
C,
184-
M,
185-
Mixin,
186-
Extends,
187-
E,
188-
EE,
189-
Provide
190-
> = ComponentOptionsWithArrayProps<
134+
EE extends string = string
135+
>(
136+
options: ComponentOptionsWithArrayProps<
191137
PropNames,
192138
RawBindings,
193139
D,
@@ -196,23 +142,8 @@ export function defineComponent<
196142
Mixin,
197143
Extends,
198144
E,
199-
EE,
200-
Provide
145+
EE
201146
>
202-
>(
203-
options: Options &
204-
ComponentOptionsWithArrayProps<
205-
PropNames,
206-
RawBindings,
207-
D,
208-
C,
209-
M,
210-
Mixin,
211-
Extends,
212-
E,
213-
EE,
214-
Provide
215-
>
216147
): DefineComponent<
217148
Readonly<{ [key in PropNames]?: any }>,
218149
RawBindings,
@@ -222,9 +153,7 @@ export function defineComponent<
222153
Mixin,
223154
Extends,
224155
E,
225-
EE,
226-
Provide,
227-
Options
156+
EE
228157
>
229158

230159
// overload 4: object format with object props declaration
@@ -240,20 +169,9 @@ export function defineComponent<
240169
Mixin extends ComponentOptionsMixin = ComponentOptionsMixin,
241170
Extends extends ComponentOptionsMixin = ComponentOptionsMixin,
242171
E extends EmitsOptions = Record<string, any>,
243-
EE extends string = string,
244-
Provide extends ComponentProvideOptions = ComponentProvideOptions,
245-
Options extends ComponentOptionsWithObjectProps<
246-
PropsOptions,
247-
RawBindings,
248-
D,
249-
C,
250-
M,
251-
Mixin,
252-
Extends,
253-
E,
254-
EE,
255-
Provide
256-
> = ComponentOptionsWithObjectProps<
172+
EE extends string = string
173+
>(
174+
options: ComponentOptionsWithObjectProps<
257175
PropsOptions,
258176
RawBindings,
259177
D,
@@ -262,36 +180,9 @@ export function defineComponent<
262180
Mixin,
263181
Extends,
264182
E,
265-
EE,
266-
Provide
183+
EE
267184
>
268-
>(
269-
options: Options &
270-
ComponentOptionsWithObjectProps<
271-
PropsOptions,
272-
RawBindings,
273-
D,
274-
C,
275-
M,
276-
Mixin,
277-
Extends,
278-
E,
279-
EE,
280-
Provide
281-
>
282-
): DefineComponent<
283-
PropsOptions,
284-
RawBindings,
285-
D,
286-
C,
287-
M,
288-
Mixin,
289-
Extends,
290-
E,
291-
EE,
292-
Provide,
293-
Options
294-
>
185+
): DefineComponent<PropsOptions, RawBindings, D, C, M, Mixin, Extends, E, EE>
295186

296187
// implementation, close to no-op
297188
export function defineComponent(options: unknown) {

packages/runtime-core/src/componentOptions.ts

Lines changed: 7 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -118,9 +118,8 @@ export interface ComponentOptionsBase<
118118
Extends extends ComponentOptionsMixin,
119119
E extends EmitsOptions,
120120
EE extends string = string,
121-
Defaults = {},
122-
Provide extends ComponentProvideOptions = ComponentProvideOptions
123-
> extends LegacyOptions<Props, D, C, M, Mixin, Extends, Provide>,
121+
Defaults = {}
122+
> extends LegacyOptions<Props, D, C, M, Mixin, Extends>,
124123
ComponentInternalOptions,
125124
ComponentCustomOptions {
126125
setup?: (
@@ -226,7 +225,6 @@ export type ComponentOptionsWithoutProps<
226225
Extends extends ComponentOptionsMixin = ComponentOptionsMixin,
227226
E extends EmitsOptions = EmitsOptions,
228227
EE extends string = string,
229-
Provide extends ComponentProvideOptions = ComponentProvideOptions,
230228
PE = Props & EmitsToProps<E>
231229
> = ComponentOptionsBase<
232230
PE,
@@ -238,8 +236,7 @@ export type ComponentOptionsWithoutProps<
238236
Extends,
239237
E,
240238
EE,
241-
{},
242-
Provide
239+
{}
243240
> & {
244241
props?: undefined
245242
} & ThisType<
@@ -256,7 +253,6 @@ export type ComponentOptionsWithArrayProps<
256253
Extends extends ComponentOptionsMixin = ComponentOptionsMixin,
257254
E extends EmitsOptions = EmitsOptions,
258255
EE extends string = string,
259-
Provide extends ComponentProvideOptions = ComponentProvideOptions,
260256
Props = Readonly<{ [key in PropNames]?: any }> & EmitsToProps<E>
261257
> = ComponentOptionsBase<
262258
Props,
@@ -268,8 +264,7 @@ export type ComponentOptionsWithArrayProps<
268264
Extends,
269265
E,
270266
EE,
271-
{},
272-
Provide
267+
{}
273268
> & {
274269
props: PropNames[]
275270
} & ThisType<
@@ -295,7 +290,6 @@ export type ComponentOptionsWithObjectProps<
295290
Extends extends ComponentOptionsMixin = ComponentOptionsMixin,
296291
E extends EmitsOptions = EmitsOptions,
297292
EE extends string = string,
298-
Provide extends ComponentProvideOptions = ComponentProvideOptions,
299293
Props = Readonly<ExtractPropTypes<PropsOptions>> & EmitsToProps<E>,
300294
Defaults = ExtractDefaultPropTypes<PropsOptions>
301295
> = ComponentOptionsBase<
@@ -308,8 +302,7 @@ export type ComponentOptionsWithObjectProps<
308302
Extends,
309303
E,
310304
EE,
311-
Defaults,
312-
Provide
305+
Defaults
313306
> & {
314307
props: PropsOptions & ThisType<void>
315308
} & ThisType<
@@ -409,8 +402,7 @@ interface LegacyOptions<
409402
C extends ComputedOptions,
410403
M extends MethodOptions,
411404
Mixin extends ComponentOptionsMixin,
412-
Extends extends ComponentOptionsMixin,
413-
Provide extends ComponentProvideOptions = ComponentProvideOptions
405+
Extends extends ComponentOptionsMixin
414406
> {
415407
compatConfig?: CompatConfig
416408

@@ -444,7 +436,7 @@ interface LegacyOptions<
444436
computed?: C
445437
methods?: M
446438
watch?: ComponentWatchOptions
447-
provide?: Provide
439+
provide?: ComponentProvideOptions
448440
inject?: ComponentInjectOptions
449441

450442
// assets

packages/runtime-core/src/componentPublicInstance.ts

Lines changed: 3 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,7 @@ import {
3434
OptionTypesKeys,
3535
resolveMergedOptions,
3636
shouldCacheAccess,
37-
MergedComponentOptionsOverride,
38-
ComponentProvideOptions
37+
MergedComponentOptionsOverride
3938
} from './componentOptions'
4039
import { EmitsOptions, EmitFn } from './componentEmits'
4140
import { Slots } from './componentSlots'
@@ -151,8 +150,7 @@ export type CreateComponentPublicInstance<
151150
PublicM extends MethodOptions = UnwrapMixinsType<PublicMixin, 'M'> &
152151
EnsureNonVoid<M>,
153152
PublicDefaults = UnwrapMixinsType<PublicMixin, 'Defaults'> &
154-
EnsureNonVoid<Defaults>,
155-
Provide extends ComponentProvideOptions = ComponentProvideOptions
153+
EnsureNonVoid<Defaults>
156154
> = ComponentPublicInstance<
157155
PublicP,
158156
PublicB,
@@ -163,19 +161,7 @@ export type CreateComponentPublicInstance<
163161
PublicProps,
164162
PublicDefaults,
165163
MakeDefaultsOptional,
166-
ComponentOptionsBase<
167-
P,
168-
B,
169-
D,
170-
C,
171-
M,
172-
Mixin,
173-
Extends,
174-
E,
175-
string,
176-
Defaults,
177-
Provide
178-
>
164+
ComponentOptionsBase<P, B, D, C, M, Mixin, Extends, E, string, Defaults>
179165
>
180166

181167
// public properties exposed on the proxy, which is used as the render context

0 commit comments

Comments
 (0)