From efa71535b886b85de6ddf44d4d093c0e6c92a058 Mon Sep 17 00:00:00 2001 From: Ray Date: Wed, 20 Mar 2024 10:21:21 +0800 Subject: [PATCH] fix(language-core): special treatment for number elements inside `v-for` (#3859) --- .../language-core/lib/generators/script.ts | 24 ++++++++++++------- test-workspace/tsc/vue3/#3845/main.vue | 17 +++++++++++++ 2 files changed, 32 insertions(+), 9 deletions(-) create mode 100644 test-workspace/tsc/vue3/#3845/main.vue diff --git a/packages/language-core/lib/generators/script.ts b/packages/language-core/lib/generators/script.ts index 2fbcaef95f..fe30740f7d 100644 --- a/packages/language-core/lib/generators/script.ts +++ b/packages/language-core/lib/generators/script.ts @@ -211,19 +211,25 @@ const __VLS_intrinsicElements: __VLS_IntrinsicElements; function __VLS_getVForSourceType(source: number): [number, number, number][]; function __VLS_getVForSourceType(source: string): [string, number, number][]; function __VLS_getVForSourceType(source: T): [ - T[number], // item - number, // key - number, // index + item: T[number], + key: number, + index: number, ][]; function __VLS_getVForSourceType }>(source: T): [ - T extends { [Symbol.iterator](): Iterator } ? T1 : never, // item - number, // key - undefined, // index + item: T extends { [Symbol.iterator](): Iterator } ? T1 : never, + key: number, + index: undefined, +][]; +// #3845 +function __VLS_getVForSourceType }>(source: T): [ + item: number | (Exclude extends { [Symbol.iterator](): Iterator } ? T1 : never), + key: number, + index: undefined, ][]; function __VLS_getVForSourceType(source: T): [ - T[keyof T], // item - keyof T, // key - number, // index + item: T[keyof T], + key: keyof T, + index: number, ][]; // @ts-ignore diff --git a/test-workspace/tsc/vue3/#3845/main.vue b/test-workspace/tsc/vue3/#3845/main.vue new file mode 100644 index 0000000000..8354532aae --- /dev/null +++ b/test-workspace/tsc/vue3/#3845/main.vue @@ -0,0 +1,17 @@ + + +