From 185d659e2af3627d28f6dc06f33e9ef881efcc43 Mon Sep 17 00:00:00 2001 From: SerKo Date: Fri, 9 Jan 2026 01:12:38 +0800 Subject: [PATCH 1/3] fix(language-core): return `keyof T` type if it extends string in `__VLS_vFor` --- packages/language-core/types/template-helpers.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/language-core/types/template-helpers.d.ts b/packages/language-core/types/template-helpers.d.ts index 8382687cd7..b98ff3428a 100644 --- a/packages/language-core/types/template-helpers.d.ts +++ b/packages/language-core/types/template-helpers.d.ts @@ -110,7 +110,7 @@ declare global { : T extends string ? [string, number][] : T extends (infer U)[] ? [U, number][] : T extends Iterable ? [V, number][] - : [T[keyof T], `${keyof T & (string | number)}`, number][]; + : [T[keyof T], keyof T extends string ? keyof T : `${keyof T & (string | number)}`, number][]; function __VLS_vSlot(slot: S, decl?: D): D extends (...args: infer P) => any ? P : any[]; function __VLS_asFunctionalDirective( dir: T, From ef226468a6afd29b46f8697a346198523a12d642 Mon Sep 17 00:00:00 2001 From: SerKo Date: Fri, 9 Jan 2026 01:12:48 +0800 Subject: [PATCH 2/3] test: add test unit --- test-workspace/tsc/#5927/main.vue | 21 +++++++++++++++++++++ test-workspace/tsc/#5927/tsconfig.json | 4 ++++ test-workspace/tsc/tsconfig.json | 3 +++ 3 files changed, 28 insertions(+) create mode 100644 test-workspace/tsc/#5927/main.vue create mode 100644 test-workspace/tsc/#5927/tsconfig.json diff --git a/test-workspace/tsc/#5927/main.vue b/test-workspace/tsc/#5927/main.vue new file mode 100644 index 0000000000..305eb3b2af --- /dev/null +++ b/test-workspace/tsc/#5927/main.vue @@ -0,0 +1,21 @@ + + + diff --git a/test-workspace/tsc/#5927/tsconfig.json b/test-workspace/tsc/#5927/tsconfig.json new file mode 100644 index 0000000000..974d85027b --- /dev/null +++ b/test-workspace/tsc/#5927/tsconfig.json @@ -0,0 +1,4 @@ +{ + "extends": "../../tsconfig.base.json", + "include": ["**/*"] +} diff --git a/test-workspace/tsc/tsconfig.json b/test-workspace/tsc/tsconfig.json index 096c081266..72f0da1f6b 100644 --- a/test-workspace/tsc/tsconfig.json +++ b/test-workspace/tsc/tsconfig.json @@ -511,6 +511,9 @@ { "path": "./#5899/tsconfig.json" }, + { + "path": "./#5927/tsconfig.json" + }, { "path": "./#625/tsconfig.json" }, From f5aa199bdda8715ed81a7abcd00ed7b49c72a746 Mon Sep 17 00:00:00 2001 From: SerKo Date: Fri, 9 Jan 2026 01:20:58 +0800 Subject: [PATCH 3/3] test: update --- test-workspace/tsc/#5927/main.vue | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/test-workspace/tsc/#5927/main.vue b/test-workspace/tsc/#5927/main.vue index 305eb3b2af..81a038bab7 100644 --- a/test-workspace/tsc/#5927/main.vue +++ b/test-workspace/tsc/#5927/main.vue @@ -1,21 +1,23 @@