diff --git a/packages/vue-language-core/src/generators/script.ts b/packages/vue-language-core/src/generators/script.ts
index 3a195b300..34c8f211f 100644
--- a/packages/vue-language-core/src/generators/script.ts
+++ b/packages/vue-language-core/src/generators/script.ts
@@ -337,13 +337,11 @@ export function generate(
//#region props
if (
- (scriptSetupRanges.propsRuntimeArg && scriptSetupRanges.defineProps)
+ scriptSetupRanges.propsRuntimeArg
|| scriptSetupRanges.defineProp.length
) {
- if (scriptSetupRanges.propsRuntimeArg && scriptSetupRanges.defineProps) {
- codes.push(`const __VLS_props = `);
- addExtraReferenceVirtualCode('scriptSetup', scriptSetupRanges.defineProps.start, scriptSetupRanges.defineProps.end);
- codes.push(`;\n`);
+ if (scriptSetupRanges.propsRuntimeArg) {
+ codes.push(`const __VLS_props = (new __VLS_publicComponent()).$props;\n`);
}
else if (scriptSetupRanges.defineProp.length) {
codes.push(`const __VLS_defaults = {\n`);
diff --git a/packages/vue-test-workspace/vue-tsc/#2754/comp.vue b/packages/vue-test-workspace/vue-tsc/#2754/comp.vue
new file mode 100644
index 000000000..b8a7f837b
--- /dev/null
+++ b/packages/vue-test-workspace/vue-tsc/#2754/comp.vue
@@ -0,0 +1,9 @@
+
diff --git a/packages/vue-test-workspace/vue-tsc/#2754/main.vue b/packages/vue-test-workspace/vue-tsc/#2754/main.vue
new file mode 100644
index 000000000..ea94b5f87
--- /dev/null
+++ b/packages/vue-test-workspace/vue-tsc/#2754/main.vue
@@ -0,0 +1,7 @@
+
+
+
+
+