diff --git a/packages/language-core/types/template-helpers.d.ts b/packages/language-core/types/template-helpers.d.ts index 8382687cd7..16f840397d 100644 --- a/packages/language-core/types/template-helpers.d.ts +++ b/packages/language-core/types/template-helpers.d.ts @@ -106,11 +106,13 @@ declare global { }; type __VLS_PrettifyGlobal = (T extends any ? { [K in keyof T]: T[K] } : { [K in keyof T as K]: T[K] }) & {}; - function __VLS_vFor(source: T): T extends number ? [number, number][] - : T extends string ? [string, number][] - : T extends (infer U)[] ? [U, number][] - : T extends Iterable ? [V, number][] - : [T[keyof T], `${keyof T & (string | number)}`, number][]; + function __VLS_vFor(source: T): ( + T extends number ? [number, number] + : T extends string ? [string, number] + : T extends (infer U)[] ? [U, number] + : T extends Iterable ? [V, number] + : [T[keyof T], Exclude, number] + )[]; function __VLS_vSlot(slot: S, decl?: D): D extends (...args: infer P) => any ? P : any[]; function __VLS_asFunctionalDirective( dir: T, diff --git a/test-workspace/tsc/v-for/main.vue b/test-workspace/tsc/v-for/main.vue index 1bc771c340..1cce37f947 100644 --- a/test-workspace/tsc/v-for/main.vue +++ b/test-workspace/tsc/v-for/main.vue @@ -40,7 +40,7 @@
{{ exactType(val, {} as string) }} - {{ exactType(key, {} as '1' | '2' | '3') }} + {{ exactType(key, {} as 1 | 2 | 3) }} {{ exactType(index, {} as number) }}
@@ -49,6 +49,12 @@ {{ exactType(key, {} as 'a' | 'b') }} {{ exactType(index, {} as number) }} + +
+ {{ exactType(val, {} as string) }} + {{ exactType(key, {} as Enum) }} + {{ exactType(index, {} as number) }} +
{{ exactType(val, {} as any) }} @@ -59,6 +65,11 @@