From e6f433fe4e6a62a8a34fbdb5418ecd2b09887914 Mon Sep 17 00:00:00 2001 From: David Matter Date: Mon, 5 Aug 2024 16:03:11 +0200 Subject: [PATCH 1/3] fix(language-core): nullable modelvalues --- .../lib/codegen/script/scriptSetup.ts | 2 +- test-workspace/tsc/vue3/#4646/child.vue | 13 +++++++++++++ test-workspace/tsc/vue3/#4646/child2.vue | 5 +++++ test-workspace/tsc/vue3/#4646/parent.vue | 15 +++++++++++++++ 4 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 test-workspace/tsc/vue3/#4646/child.vue create mode 100644 test-workspace/tsc/vue3/#4646/child2.vue create mode 100644 test-workspace/tsc/vue3/#4646/parent.vue diff --git a/packages/language-core/lib/codegen/script/scriptSetup.ts b/packages/language-core/lib/codegen/script/scriptSetup.ts index 07024b5757..36cdb4aa15 100644 --- a/packages/language-core/lib/codegen/script/scriptSetup.ts +++ b/packages/language-core/lib/codegen/script/scriptSetup.ts @@ -413,7 +413,7 @@ function* generateDefinePropType(scriptSetup: NonNullable, p } else if ((defineProp.name && defineProp.nameIsString) || !defineProp.nameIsString) { // Infer from actual prop declaration code - yield `NonNullable`; + yield `typeof ${propName}['value']`; } else if (defineProp.defaultValue) { // Infer from defineProp({default: T}) diff --git a/test-workspace/tsc/vue3/#4646/child.vue b/test-workspace/tsc/vue3/#4646/child.vue new file mode 100644 index 0000000000..454ae97a7e --- /dev/null +++ b/test-workspace/tsc/vue3/#4646/child.vue @@ -0,0 +1,13 @@ + + + diff --git a/test-workspace/tsc/vue3/#4646/child2.vue b/test-workspace/tsc/vue3/#4646/child2.vue new file mode 100644 index 0000000000..3c9de244f0 --- /dev/null +++ b/test-workspace/tsc/vue3/#4646/child2.vue @@ -0,0 +1,5 @@ + + + diff --git a/test-workspace/tsc/vue3/#4646/parent.vue b/test-workspace/tsc/vue3/#4646/parent.vue new file mode 100644 index 0000000000..136a744672 --- /dev/null +++ b/test-workspace/tsc/vue3/#4646/parent.vue @@ -0,0 +1,15 @@ + + From 9b00f23e83fbca125c7158a4fd56a735248b9a0b Mon Sep 17 00:00:00 2001 From: David Matter Date: Mon, 5 Aug 2024 16:10:11 +0200 Subject: [PATCH 2/3] fix: formatting --- test-workspace/tsc/vue3/#4646/child.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test-workspace/tsc/vue3/#4646/child.vue b/test-workspace/tsc/vue3/#4646/child.vue index 454ae97a7e..89d4a68525 100644 --- a/test-workspace/tsc/vue3/#4646/child.vue +++ b/test-workspace/tsc/vue3/#4646/child.vue @@ -5,7 +5,7 @@ import {exactType} from 'tsc/shared' import {PropType} from 'vue' const msg = defineModel('msg', { - type: String as PropType, + type: String as PropType, required: true, }) From 4999fc453ea3ae4c1a7a8dadbee4ffeec1f29b9d Mon Sep 17 00:00:00 2001 From: David Matter Date: Mon, 5 Aug 2024 16:21:11 +0200 Subject: [PATCH 3/3] fix(test): remove 4646 from vue2 testing --- test-workspace/tsc/vue2/tsconfig.json | 1 + 1 file changed, 1 insertion(+) diff --git a/test-workspace/tsc/vue2/tsconfig.json b/test-workspace/tsc/vue2/tsconfig.json index 9aaa7ba292..a425bb6dd7 100644 --- a/test-workspace/tsc/vue2/tsconfig.json +++ b/test-workspace/tsc/vue2/tsconfig.json @@ -21,6 +21,7 @@ "../vue3/#4327", "../vue3/#4512", "../vue3/#4540", + "../vue3/#4646", "../vue3/components", "../vue3/defineEmits", "../vue3/defineModel",