DefineComponent<typeof MyPropsObject> ruturn `ComponentPublicInstanceConstructo<any, any, ...>`
Version
3.0.0
Reproduction link
https://codesandbox.io/s/vue-3-ce53j?fontsize=14&hidenavigation=1&theme=dark
Steps to reproduce
I want to define my Component type using DefineComponent
, something like:
type MyComponentType = DefineComponent<MyComponentPropsObject>
but the type returned is not correct, it returns ComponentPublicInstanceConstructo<any, any, ...>
What is expected?
return the correct type
What is actually happening?
return type not correct, it returns:
ComponentPublicInstanceConstructor<any, any, any, any, Record<string, ComputedGetter<any> | WritableComputedOptions<any>>, MethodOptions> & ComponentOptionsBase<...> & VNodeProps & AllowedComponentProps & ComponentCustomProps
did not find any online code editor support ts
The "reproduction link" is just a template, not a reproduction of your issue.
Please provide actual code.
@pikax it's the case where user directly tries to use the DefineComponent
type with optional generic arguments:
function test(C: DefineComponent<{ foo: string }>) {
const c = new C() // type of c is `any`
}
Because optional RawBinding
and D
defaulting to any
and then intersected on to the instance type.