@@ -3,6 +3,7 @@ import { VNode, VNodeData, VNodeDirective, NormalizedScopedSlot } from './vnode'
33import { SetupContext } from './v3-setup-context'
44import { DebuggerEvent } from './v3-generated'
55import { DefineComponent } from './v3-define-component'
6+ import { ComponentOptionsMixin } from './v3-component-options'
67
78type Constructor = {
89 new ( ...args : any [ ] ) : any
@@ -93,7 +94,9 @@ export type ThisTypedComponentOptionsWithArrayProps<
9394 Methods ,
9495 Computed ,
9596 PropNames extends string ,
96- SetupBindings
97+ SetupBindings ,
98+ Mixin ,
99+ Extends
97100> = object &
98101 ComponentOptions <
99102 V ,
@@ -102,7 +105,9 @@ export type ThisTypedComponentOptionsWithArrayProps<
102105 Computed ,
103106 PropNames [ ] ,
104107 Record < PropNames , any > ,
105- SetupBindings
108+ SetupBindings ,
109+ Mixin ,
110+ Extends
106111 > &
107112 ThisType <
108113 CombinedVueInstance <
@@ -111,7 +116,9 @@ export type ThisTypedComponentOptionsWithArrayProps<
111116 Methods ,
112117 Computed ,
113118 Readonly < Record < PropNames , any > > ,
114- SetupBindings
119+ SetupBindings ,
120+ Mixin ,
121+ Extends
115122 >
116123 >
117124
@@ -124,7 +131,9 @@ export type ThisTypedComponentOptionsWithRecordProps<
124131 Methods ,
125132 Computed ,
126133 Props ,
127- SetupBindings
134+ SetupBindings ,
135+ Mixin ,
136+ Extends
128137> = object &
129138 ComponentOptions <
130139 V ,
@@ -133,7 +142,9 @@ export type ThisTypedComponentOptionsWithRecordProps<
133142 Computed ,
134143 RecordPropsDefinition < Props > ,
135144 Props ,
136- SetupBindings
145+ SetupBindings ,
146+ Mixin ,
147+ Extends
137148 > &
138149 ThisType <
139150 CombinedVueInstance <
@@ -142,7 +153,9 @@ export type ThisTypedComponentOptionsWithRecordProps<
142153 Methods ,
143154 Computed ,
144155 Readonly < Props > ,
145- SetupBindings
156+ SetupBindings ,
157+ Mixin ,
158+ Extends
146159 >
147160 >
148161
@@ -158,7 +171,9 @@ export interface ComponentOptions<
158171 Computed = DefaultComputed ,
159172 PropsDef = PropsDefinition < DefaultProps > ,
160173 Props = DefaultProps ,
161- RawBindings = { }
174+ RawBindings = { } ,
175+ Mixin extends ComponentOptionsMixin = ComponentOptionsMixin ,
176+ Extends extends ComponentOptionsMixin = ComponentOptionsMixin
162177> {
163178 data ?: Data
164179 props ?: PropsDef
@@ -217,12 +232,12 @@ export interface ComponentOptions<
217232 }
218233
219234 parent ?: Vue
220- mixins ?: ( ComponentOptions < Vue > | typeof Vue ) [ ]
235+ mixins ?: ( Mixin | ComponentOptions < Vue > | typeof Vue ) [ ]
221236 name ?: string
222237 // for SFC auto name inference w/ ts-loader check
223238 __name ?: string
224239 // TODO: support properly inferred 'extends'
225- extends ?: ComponentOptions < Vue > | typeof Vue
240+ extends ?: Extends | ComponentOptions < Vue > | typeof Vue
226241 delimiters ?: [ string , string ]
227242 comments ?: boolean
228243 inheritAttrs ?: boolean
0 commit comments