diff --git a/packages/language-core/lib/codegen/script/template.ts b/packages/language-core/lib/codegen/script/template.ts
index ae9db28097..6bbb057ea2 100644
--- a/packages/language-core/lib/codegen/script/template.ts
+++ b/packages/language-core/lib/codegen/script/template.ts
@@ -77,16 +77,8 @@ function* generateTemplateCtx(
exps.push([`{} as { $emit: ${emitTypes.join(` & `)} }`]);
}
- const { defineProps, withDefaults } = scriptSetupRanges ?? {};
- const props = defineProps?.arg
- ? `typeof ${defineProps.name ?? names.props}`
- : defineProps?.typeArg
- ? withDefaults?.arg
- ? `__VLS_WithDefaultsGlobal<${names.Props}, typeof ${names.defaults}>`
- : `${names.Props}`
- : undefined;
- if (props) {
- propTypes.push(props);
+ if (scriptSetupRanges?.defineProps) {
+ propTypes.push(`typeof ${scriptSetupRanges.defineProps.name ?? names.props}`);
}
if (scriptSetupRanges?.defineModel.length) {
propTypes.push(names.ModelProps);
diff --git a/test-workspace/tsc/passedFixtures/vue3/#3779/main.vue b/test-workspace/tsc/passedFixtures/vue3/#3779/main.vue
index 5fcef0b240..dca94c63ae 100644
--- a/test-workspace/tsc/passedFixtures/vue3/#3779/main.vue
+++ b/test-workspace/tsc/passedFixtures/vue3/#3779/main.vue
@@ -6,5 +6,5 @@ defineProps<{
- {{ exactType(optionalBoolean, {} as boolean | undefined) }}
+ {{ exactType(optionalBoolean, {} as boolean) }}
diff --git a/test-workspace/tsc/passedFixtures/vue3/#3779/named.vue b/test-workspace/tsc/passedFixtures/vue3/#3779/named.vue
index 5fcef0b240..dca94c63ae 100644
--- a/test-workspace/tsc/passedFixtures/vue3/#3779/named.vue
+++ b/test-workspace/tsc/passedFixtures/vue3/#3779/named.vue
@@ -6,5 +6,5 @@ defineProps<{
- {{ exactType(optionalBoolean, {} as boolean | undefined) }}
+ {{ exactType(optionalBoolean, {} as boolean) }}