From 32de5847a5d47b98c421ee72b3c18cb20c59069f Mon Sep 17 00:00:00 2001 From: Johnson Chu Date: Thu, 27 Apr 2023 04:16:02 +0800 Subject: [PATCH] fix: avoid props type-checking for `VNode` close #2720 --- packages/vue-language-core/src/utils/localTypes.ts | 3 ++- packages/vue-test-workspace/vue-tsc/#2720/main.vue | 12 ++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 packages/vue-test-workspace/vue-tsc/#2720/main.vue diff --git a/packages/vue-language-core/src/utils/localTypes.ts b/packages/vue-language-core/src/utils/localTypes.ts index f66e51685..13c136f16 100644 --- a/packages/vue-language-core/src/utils/localTypes.ts +++ b/packages/vue-language-core/src/utils/localTypes.ts @@ -14,6 +14,7 @@ export function getTypesCode( import type { ObjectDirective, FunctionDirective, + VNode, } from '${libName}'; export type IntrinsicElements = PickNotAny>>; @@ -96,7 +97,7 @@ export declare function asFunctionalComponent JSX.Element & { __ctx?: typeof ctx & { props?: typeof props; expose?(exposed: K): void; } } : T extends () => any ? (props: {}, ctx?: any) => ReturnType : T extends (...args: any) => any ? T - : (_: T & Record, ctx?: any) => { __ctx?: { attrs?: unknown, expose?: unknown, slots?: unknown, emit?: unknown, props?: T & Record } }; // IntrinsicElement + : (_: T extends import('vue').VNode ? {}: T & Record, ctx?: any) => { __ctx?: { attrs?: unknown, expose?: unknown, slots?: unknown, emit?: unknown, props?: T & Record } }; // IntrinsicElement declare function functionalComponentArgsRest any>(t: T): Parameters['length'] extends 2 ? [any] : []; export declare function pickEvent(emit: Emit, emitKey: K, event: E): FillingEventArg< PickNotAny< diff --git a/packages/vue-test-workspace/vue-tsc/#2720/main.vue b/packages/vue-test-workspace/vue-tsc/#2720/main.vue new file mode 100644 index 000000000..a050ba366 --- /dev/null +++ b/packages/vue-test-workspace/vue-tsc/#2720/main.vue @@ -0,0 +1,12 @@ + + +