diff --git a/packages/vue-language-core/schemas/vue-tsconfig.deprecated.schema.json b/packages/vue-language-core/schemas/vue-tsconfig.deprecated.schema.json index 808e642aa..418359149 100644 --- a/packages/vue-language-core/schemas/vue-tsconfig.deprecated.schema.json +++ b/packages/vue-language-core/schemas/vue-tsconfig.deprecated.schema.json @@ -53,6 +53,12 @@ }, "bypassDefineComponentToExposePropsAndEmitsForJsScriptSetupComponents": { "deprecated": true + }, + "experimentalRfc436": { + "deprecated": true, + "type": "boolean", + "default": false, + "markdownDescription": "This flag is no longer needed after v1.4.0.\n\n[RFC](https://github.com/vuejs/rfcs/discussions/436)" } } } diff --git a/packages/vue-language-core/schemas/vue-tsconfig.schema.json b/packages/vue-language-core/schemas/vue-tsconfig.schema.json index 1ed02cc08..181a20e1f 100644 --- a/packages/vue-language-core/schemas/vue-tsconfig.schema.json +++ b/packages/vue-language-core/schemas/vue-tsconfig.schema.json @@ -93,11 +93,6 @@ ], "markdownDescription": "https://github.com/johnsoncodehk/volar/issues/1038, https://github.com/johnsoncodehk/volar/issues/1121" }, - "experimentalRfc436": { - "type": "boolean", - "default": false, - "markdownDescription": "https://github.com/vuejs/rfcs/discussions/436" - }, "experimentalUseElementAccessInTemplate": { "type": "boolean", "default": false, diff --git a/packages/vue-language-core/src/generators/script.ts b/packages/vue-language-core/src/generators/script.ts index 7e8968b18..3758a54dc 100644 --- a/packages/vue-language-core/src/generators/script.ts +++ b/packages/vue-language-core/src/generators/script.ts @@ -76,7 +76,7 @@ export function generate( ConstructorOverloads: false, WithTemplateSlots: false, }; - const generateFunctionType = !!vueCompilerOptions.experimentalRfc436 && !!sfc.scriptSetup?.generic; + const generateFunctionType = !!sfc.scriptSetup?.generic; writeScriptSrc(); writeScriptSetupImportsSegment(); @@ -309,6 +309,9 @@ export function generate( sfc.scriptSetup.genericOffset, FileRangeCapabilities.full, ]); + if (!sfc.scriptSetup.generic.endsWith(',')) { + codeGen.push(`,`); + } codeGen.push(`>`); } codeGen.push('('); diff --git a/packages/vue-language-core/src/types.ts b/packages/vue-language-core/src/types.ts index 2b5dc1c58..0ceac3fd2 100644 --- a/packages/vue-language-core/src/types.ts +++ b/packages/vue-language-core/src/types.ts @@ -33,7 +33,6 @@ export interface VueCompilerOptions { // experimental experimentalResolveStyleCssClasses: 'scoped' | 'always' | 'never'; - experimentalRfc436: boolean; experimentalModelPropName: Record | Record[]>>; experimentalUseElementAccessInTemplate: boolean; experimentalAdditionalLanguageModules: string[]; diff --git a/packages/vue-language-core/src/utils/ts.ts b/packages/vue-language-core/src/utils/ts.ts index 24f72dab1..a0263fd5b 100644 --- a/packages/vue-language-core/src/utils/ts.ts +++ b/packages/vue-language-core/src/utils/ts.ts @@ -209,7 +209,6 @@ export function resolveVueCompilerOptions(vueOptions: Partial