diff --git a/packages/vue-language-core/src/generators/template.ts b/packages/vue-language-core/src/generators/template.ts
index c9ce89a87..073a43d3c 100644
--- a/packages/vue-language-core/src/generators/template.ts
+++ b/packages/vue-language-core/src/generators/template.ts
@@ -732,7 +732,7 @@ export function generate(
}
codes.push(
['', 'template', (slotDir.arg ?? slotDir).loc.start.offset, capabilitiesPresets.diagnosticOnly],
- `${componentCtxVar}.slots!`,
+ `(${componentCtxVar}.slots!)`,
...(
(slotDir?.arg?.type === CompilerDOM.NodeTypes.SIMPLE_EXPRESSION && slotDir.arg.content)
? createPropertyAccessCode([
diff --git a/packages/vue-test-workspace/vue-tsc/#3121/main.vue b/packages/vue-test-workspace/vue-tsc/#3121/main.vue
new file mode 100644
index 000000000..36fcd2011
--- /dev/null
+++ b/packages/vue-test-workspace/vue-tsc/#3121/main.vue
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+