Skip to content

Commit 1cbc953

Browse files
committed
wip
1 parent 697afee commit 1cbc953

File tree

5 files changed

+30
-26
lines changed

5 files changed

+30
-26
lines changed

packages/runtime-core/src/apiDefineComponent.ts

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import type {
1717
import type {
1818
ComponentInjectOptions,
1919
ComponentOptions,
20+
ComponentOptionsMixin,
2021
ComponentProvideOptions,
2122
ComputedOptions,
2223
ConcreteComponentOptions,
@@ -62,10 +63,10 @@ export type DefineComponent<
6263
D = {},
6364
C extends ComputedOptions = ComputedOptions,
6465
M extends MethodOptions = MethodOptions,
65-
Mixin = {},
66-
Extends = {},
66+
Mixin extends ComponentOptionsMixin = {},
67+
Extends extends ComponentOptionsMixin = {},
6768
E extends EmitsOptions = {},
68-
_EE extends string = string,
69+
EE extends string = string,
6970
_PP = PublicProps,
7071
_Props = ResolveProps<OptionsOrPropsOrPropOptions, E>,
7172
Defaults = ExtractDefaultPropTypes<OptionsOrPropsOrPropOptions>,
@@ -88,6 +89,7 @@ export type DefineComponent<
8889
props?: OptionsOrPropsOrPropOptions extends ComponentPropsOptions
8990
? OptionsOrPropsOrPropOptions
9091
: {}
92+
emits?: string extends EE ? E : EE[]
9193
computed?: C
9294
methods?: M
9395
mixins?: Mixin[]
@@ -306,8 +308,8 @@ export function defineComponent<
306308
SetupBindings = {},
307309
Computed extends ComputedOptions = {},
308310
Methods extends MethodOptions = {},
309-
Mixin = {},
310-
Extends = {},
311+
Mixin extends ComponentOptionsMixin = {},
312+
Extends extends ComponentOptionsMixin = {},
311313
Slots extends SlotsType = {},
312314
LocalComponents extends Record<string, Component> = {},
313315
Directives extends Record<string, Directive> = {},

packages/runtime-core/src/apiSetupHelpers.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import {
1717
} from './component'
1818
import type { EmitFn, EmitsOptions, ObjectEmitsOptions } from './componentEmits'
1919
import type {
20+
ComponentOptionsMixin,
2021
ComputedOptions,
2122
ConcreteComponentOptions,
2223
MethodOptions,
@@ -200,8 +201,8 @@ export function defineOptions<
200201
D = {},
201202
C extends ComputedOptions = {},
202203
M extends MethodOptions = {},
203-
Mixin = {},
204-
Extends = {},
204+
Mixin extends ComponentOptionsMixin = {},
205+
Extends extends ComponentOptionsMixin = {},
205206
InternalInstance = ComponentPublicInstance<
206207
{},
207208
ExtractMixinSetupBindings<Mixin> &

packages/runtime-core/src/componentOptions.ts

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -129,8 +129,8 @@ export interface ComponentOptionsBase<
129129
D,
130130
C extends ComputedOptions,
131131
M extends MethodOptions,
132-
Mixin,
133-
Extends,
132+
Mixin extends ComponentOptionsMixin,
133+
Extends extends ComponentOptionsMixin,
134134
E extends EmitsOptions,
135135
EE extends string = string,
136136
Defaults = {},
@@ -257,8 +257,8 @@ export type ComponentOptions<
257257
D = any,
258258
C extends ComputedOptions = any,
259259
M extends MethodOptions = any,
260-
Mixin = {},
261-
Extends = {},
260+
Mixin extends ComponentOptionsMixin = {},
261+
Extends extends ComponentOptionsMixin = {},
262262
E extends EmitsOptions = any,
263263
EE extends string = string,
264264
Defaults = {},
@@ -364,8 +364,8 @@ interface LegacyOptions<
364364
D,
365365
C extends ComputedOptions,
366366
M extends MethodOptions,
367-
Mixin,
368-
Extends,
367+
Mixin extends ComponentOptionsMixin,
368+
Extends extends ComponentOptionsMixin,
369369
I extends ComponentInjectOptions,
370370
II extends string,
371371
Provide extends ComponentProvideOptions = ComponentProvideOptions,
@@ -1107,8 +1107,8 @@ export type ComponentOptionsWithoutProps<
11071107
D = {},
11081108
C extends ComputedOptions = {},
11091109
M extends MethodOptions = {},
1110-
Mixin = {},
1111-
Extends = {},
1110+
Mixin extends ComponentOptionsMixin = {},
1111+
Extends extends ComponentOptionsMixin = {},
11121112
E extends EmitsOptions = {},
11131113
EE extends string = string,
11141114
I extends ComponentInjectOptions = {},
@@ -1181,8 +1181,8 @@ export type ComponentOptionsWithArrayProps<
11811181
D = {},
11821182
C extends ComputedOptions = {},
11831183
M extends MethodOptions = {},
1184-
Mixin = {},
1185-
Extends = {},
1184+
Mixin extends ComponentOptionsMixin = {},
1185+
Extends extends ComponentOptionsMixin = {},
11861186
E extends EmitsOptions = EmitsOptions,
11871187
EE extends string = string,
11881188
I extends ComponentInjectOptions = {},
@@ -1243,8 +1243,8 @@ export type ComponentOptionsWithObjectProps<
12431243
D = {},
12441244
C extends ComputedOptions = {},
12451245
M extends MethodOptions = {},
1246-
Mixin = {},
1247-
Extends = {},
1246+
Mixin extends ComponentOptionsMixin = {},
1247+
Extends extends ComponentOptionsMixin = {},
12481248
E extends EmitsOptions = EmitsOptions,
12491249
EE extends string = string,
12501250
I extends ComponentInjectOptions = {},

packages/runtime-core/src/componentPublicInstance.ts

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ import {
3636
import {
3737
type ComponentInjectOptions,
3838
type ComponentOptionsBase,
39+
type ComponentOptionsMixin,
3940
type ComponentProvideOptions,
4041
type ComputedOptions,
4142
type ExtractComputedReturns,
@@ -132,8 +133,8 @@ export type CreateComponentPublicInstance<
132133
D = {},
133134
C extends ComputedOptions = {},
134135
M extends MethodOptions = {},
135-
Mixin = {},
136-
Extends = {},
136+
Mixin extends ComponentOptionsMixin = {},
137+
Extends extends ComponentOptionsMixin = {},
137138
E extends EmitsOptions = {},
138139
PublicProps = P,
139140
Defaults = {},
@@ -199,8 +200,8 @@ export type CreateComponentPublicInstanceWithMixins<
199200
D = {},
200201
C extends ComputedOptions = {},
201202
M extends MethodOptions = {},
202-
Mixin = {},
203-
Extends = {},
203+
Mixin extends ComponentOptionsMixin = {},
204+
Extends extends ComponentOptionsMixin = {},
204205
E extends EmitsOptions = {},
205206
PublicProps = P,
206207
Defaults = {},

packages/runtime-dom/src/apiCustomElement.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ import {
4141
isPlainObject,
4242
toNumber,
4343
} from '@vue/shared'
44-
import { createApp, createSSRApp, render } from '.'
44+
import { type ComponentOptionsMixin, createApp, createSSRApp, render } from '.'
4545

4646
// marker for attr removal
4747
const REMOVAL = {}
@@ -87,8 +87,8 @@ export function defineCustomElement<
8787
SetupBindings = {},
8888
Computed extends ComputedOptions = {},
8989
Methods extends MethodOptions = {},
90-
Mixin = {},
91-
Extends = {},
90+
Mixin extends ComponentOptionsMixin = {},
91+
Extends extends ComponentOptionsMixin = {},
9292
InjectOptions extends ComponentInjectOptions = {},
9393
Slots extends SlotsType = {},
9494
LocalComponents extends Record<string, Component> = {},

0 commit comments

Comments
 (0)