From 69655fcc14ed15f6c332b9d8e8227ded78b78147 Mon Sep 17 00:00:00 2001 From: johnsoncodehk Date: Wed, 12 Oct 2022 06:24:45 +0800 Subject: [PATCH] fix: don't hoisting defineProps type arg without `experimentalRfc436` close #1994 --- .../vue-language-core/src/generators/script.ts | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/vue-language-tools/vue-language-core/src/generators/script.ts b/vue-language-tools/vue-language-core/src/generators/script.ts index 2d0cbf531..58129c266 100644 --- a/vue-language-tools/vue-language-core/src/generators/script.ts +++ b/vue-language-tools/vue-language-core/src/generators/script.ts @@ -263,13 +263,13 @@ export function generate( codeGen.push(`>`); } codeGen.push('('); - if (scriptSetupRanges.propsTypeArg) { + if (vueCompilerOptions.experimentalRfc436 && scriptSetupRanges.propsTypeArg) { codeGen.push('__VLS_props: '); addVirtualCode('scriptSetup', scriptSetupRanges.propsTypeArg.start, scriptSetupRanges.propsTypeArg.end); } codeGen.push(') => {\n'); codeGen.push('const __VLS_setup = async () => {\n'); - if (scriptSetupRanges.propsTypeArg) { + if (vueCompilerOptions.experimentalRfc436 && scriptSetupRanges.propsTypeArg) { addVirtualCode('scriptSetup', scriptSetupRanges.importSectionEndOffset, scriptSetupRanges.propsTypeArg.start); codeGen.push('typeof __VLS_props'); addVirtualCode('scriptSetup', scriptSetupRanges.propsTypeArg.end); @@ -308,7 +308,14 @@ export function generate( codeGen.push(`__VLS_WithDefaults<`); } - codeGen.push(`__VLS_TypePropsToRuntimeProps`); + codeGen.push(`__VLS_TypePropsToRuntimeProps<`); + if (vueCompilerOptions.experimentalRfc436) { + codeGen.push(`typeof __VLS_props`); + } + else { + addExtraReferenceVirtualCode('scriptSetup', scriptSetupRanges.propsTypeArg.start, scriptSetupRanges.propsTypeArg.end); + } + codeGen.push(`>`); if (scriptSetupRanges.withDefaultsArg) { codeGen.push(`, typeof __VLS_withDefaultsArg`);