chore: fix types

This commit is contained in:
Evan You 2023-12-08 22:34:47 +08:00
parent 927ab17cfc
commit c95ab62936
1 changed files with 17 additions and 17 deletions

View File

@ -99,23 +99,23 @@ export type Data = Record<string, unknown>
export type ComponentInstance<T> = T extends { new (): ComponentPublicInstance } export type ComponentInstance<T> = T extends { new (): ComponentPublicInstance }
? InstanceType<T> ? InstanceType<T>
: T extends FunctionalComponent<infer Props, infer Emits> : T extends FunctionalComponent<infer Props, infer Emits>
? ComponentPublicInstance<Props, {}, {}, {}, {}, Emits> ? ComponentPublicInstance<Props, {}, {}, {}, {}, ShortEmitsToObject<Emits>>
: T extends Component< : T extends Component<
infer Props, infer Props,
infer RawBindings, infer RawBindings,
infer D, infer D,
infer C, infer C,
infer M infer M
> >
? // NOTE we override Props/RawBindings/D to make sure is not `unknown` ? // NOTE we override Props/RawBindings/D to make sure is not `unknown`
ComponentPublicInstance< ComponentPublicInstance<
unknown extends Props ? {} : Props, unknown extends Props ? {} : Props,
unknown extends RawBindings ? {} : RawBindings, unknown extends RawBindings ? {} : RawBindings,
unknown extends D ? {} : D, unknown extends D ? {} : D,
C, C,
M M
> >
: never // not a vue Component : never // not a vue Component
/** /**
* For extending allowed non-declared props on components in TSX * For extending allowed non-declared props on components in TSX