@@ -26,7 +26,10 @@ import type {
2626 VNodeWithData
2727} from 'typescript/vnode'
2828import type { Component } from 'typescript/component'
29- import type { InternalComponentOptions } from 'typescript/options'
29+ import type {
30+ ComponentOptions ,
31+ InternalComponentOptions
32+ } from 'typescript/options'
3033
3134// inline hooks to be invoked on component VNodes during patch
3235const componentVNodeHooks = {
@@ -95,7 +98,7 @@ const componentVNodeHooks = {
9598const hooksToMerge = Object . keys ( componentVNodeHooks )
9699
97100export function createComponent (
98- Ctor : Component | Function | Object | void ,
101+ Ctor : typeof Component | Function | ComponentOptions | void ,
99102 data : VNodeData | undefined ,
100103 context : Component ,
101104 children ?: Array < VNode > ,
@@ -109,7 +112,7 @@ export function createComponent(
109112
110113 // plain options object: turn it into a constructor
111114 if ( isObject ( Ctor ) ) {
112- Ctor = baseCtor . extend ( Ctor )
115+ Ctor = baseCtor . extend ( Ctor as typeof Component )
113116 }
114117
115118 // if at this stage it's not a constructor or an async component factory,
@@ -139,7 +142,7 @@ export function createComponent(
139142
140143 // resolve constructor options in case global mixins are applied after
141144 // component constructor creation
142- resolveConstructorOptions ( Ctor as Component )
145+ resolveConstructorOptions ( Ctor as typeof Component )
143146
144147 // transform component v-model data into props & events
145148 if ( isDef ( data . model ) ) {
@@ -155,7 +158,7 @@ export function createComponent(
155158 // @ts -expect-error
156159 if ( isTrue ( Ctor . options . functional ) ) {
157160 return createFunctionalComponent (
158- Ctor as Component ,
161+ Ctor as typeof Component ,
159162 propsData ,
160163 data ,
161164 context ,
0 commit comments