diff --git a/packages/plugin-vue/src/template.ts b/packages/plugin-vue/src/template.ts index 1735542620441a..b3a8e1e5f58a8f 100644 --- a/packages/plugin-vue/src/template.ts +++ b/packages/plugin-vue/src/template.ts @@ -161,10 +161,8 @@ export function resolveTemplateCompilerOptions( // if using TS, support TS syntax in template expressions const expressionPlugins: CompilerOptions['expressionPlugins'] = options.template?.compilerOptions?.expressionPlugins || [] - if ( - descriptor.script?.lang === 'ts' || - descriptor.scriptSetup?.lang === 'ts' - ) { + const lang = descriptor.scriptSetup?.lang || descriptor.script?.lang + if (lang && /tsx?$/.test(lang) && !expressionPlugins.includes('typescript')) { expressionPlugins.push('typescript') }