Skip to content

Commit 01fa2ab

Browse files
committed
feat(plugin-vue): support TS in template expressions
1 parent c8c0f74 commit 01fa2ab

File tree

1 file changed

+14
-2
lines changed

1 file changed

+14
-2
lines changed

packages/plugin-vue/src/template.ts

+14-2
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@ import {
44
compileTemplate,
55
SFCDescriptor,
66
SFCTemplateCompileOptions,
7-
SFCTemplateCompileResults
7+
SFCTemplateCompileResults,
8+
CompilerOptions
89
} from '@vue/compiler-sfc'
910
import { PluginContext, TransformPluginContext } from 'rollup'
1011
import { ResolvedOptions } from '.'
@@ -157,6 +158,16 @@ export function resolveTemplateCompilerOptions(
157158
}
158159
}
159160

161+
// if using TS, support TS syntax in template expressions
162+
const expressionPlugins: CompilerOptions['expressionPlugins'] =
163+
options.template?.compilerOptions?.expressionPlugins || []
164+
if (
165+
descriptor.script?.lang === 'ts' ||
166+
descriptor.scriptSetup?.lang === 'ts'
167+
) {
168+
expressionPlugins.push('typescript')
169+
}
170+
160171
return {
161172
...options.template,
162173
id,
@@ -173,7 +184,8 @@ export function resolveTemplateCompilerOptions(
173184
compilerOptions: {
174185
...options.template?.compilerOptions,
175186
scopeId: hasScoped ? `data-v-${id}` : undefined,
176-
bindingMetadata: resolvedScript ? resolvedScript.bindings : undefined
187+
bindingMetadata: resolvedScript ? resolvedScript.bindings : undefined,
188+
expressionPlugins
177189
}
178190
}
179191
}

0 commit comments

Comments
 (0)