From 66bdccc316b429b801104e5eb1b8e5d1eb0c9ae2 Mon Sep 17 00:00:00 2001 From: Johnson Chu Date: Sat, 27 Apr 2024 10:30:39 +0800 Subject: [PATCH] chore(language-core): only generate `__typeProps`, `__typeEmits` for Vue 3.5 --- .../lib/codegen/script/component.ts | 17 ++++++++++------- .../lib/codegen/script/internalComponent.ts | 2 +- .../schemas/vue-tsconfig.schema.json | 3 ++- 3 files changed, 13 insertions(+), 9 deletions(-) diff --git a/packages/language-core/lib/codegen/script/component.ts b/packages/language-core/lib/codegen/script/component.ts index 31ab11a336..27b9caa457 100644 --- a/packages/language-core/lib/codegen/script/component.ts +++ b/packages/language-core/lib/codegen/script/component.ts @@ -31,7 +31,7 @@ export function* generateComponent( yield `}${endOfLine}`; yield `},${newLine}`; if (!ctx.bypassDefineComponent) { - yield* generateScriptSetupOptions(ctx, scriptSetup, scriptSetupRanges); + yield* generateScriptSetupOptions(options, ctx, scriptSetup, scriptSetupRanges); } if (options.sfc.script && options.scriptRanges) { yield* generateScriptOptions(options.sfc.script, options.scriptRanges); @@ -62,6 +62,7 @@ export function* generateScriptOptions( } export function* generateScriptSetupOptions( + options: ScriptCodegenOptions, ctx: ScriptCodegenContext, scriptSetup: NonNullable, scriptSetupRanges: ScriptSetupRanges, @@ -113,11 +114,13 @@ export function* generateScriptSetupOptions( yield `>),${newLine}`; } - // https://github.com/vuejs/core/pull/10801 - if (scriptSetupRanges.props.define?.typeArg) { - yield `__typeProps: typeof __VLS_typeProps,${newLine}`; - } - if (scriptSetupRanges.emits.define) { - yield `__typeEmits: typeof ${scriptSetupRanges.emits.name ?? '__VLS_emit'},${newLine}`; + if (options.vueCompilerOptions.target >= 3.5) { + // https://github.com/vuejs/core/pull/10801 + if (scriptSetupRanges.props.define?.typeArg) { + yield `__typeProps: typeof __VLS_typeProps,${newLine}`; + } + if (scriptSetupRanges.emits.define?.typeArg) { + yield `__typeEmits: typeof ${scriptSetupRanges.emits.name ?? '__VLS_emit'},${newLine}`; + } } } diff --git a/packages/language-core/lib/codegen/script/internalComponent.ts b/packages/language-core/lib/codegen/script/internalComponent.ts index b517b32260..c5a0d600e1 100644 --- a/packages/language-core/lib/codegen/script/internalComponent.ts +++ b/packages/language-core/lib/codegen/script/internalComponent.ts @@ -48,7 +48,7 @@ export function* generateInternalComponent( yield `}${endOfLine}`; // return { yield `},${newLine}`; // setup() { if (options.sfc.scriptSetup && options.scriptSetupRanges && !ctx.bypassDefineComponent) { - yield* generateScriptSetupOptions(ctx, options.sfc.scriptSetup, options.scriptSetupRanges); + yield* generateScriptSetupOptions(options, ctx, options.sfc.scriptSetup, options.scriptSetupRanges); } if (options.sfc.script && options.scriptRanges) { yield* generateScriptOptions(options.sfc.script, options.scriptRanges); diff --git a/packages/language-core/schemas/vue-tsconfig.schema.json b/packages/language-core/schemas/vue-tsconfig.schema.json index 2c25da2ccf..7acb98bcd9 100644 --- a/packages/language-core/schemas/vue-tsconfig.schema.json +++ b/packages/language-core/schemas/vue-tsconfig.schema.json @@ -11,7 +11,8 @@ 2, 2.7, 3, - 3.3 + 3.3, + 3.5 ], "markdownDescription": "Target version of Vue." },