Skip to content

Commit 529415e

Browse files
committed
chore: narrow v-for types for object union
#2758
1 parent 4b27d91 commit 529415e

File tree

3 files changed

+8
-6
lines changed

3 files changed

+8
-6
lines changed

packages/vue-language-core/src/utils/directorySharedTypes.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,8 @@ export declare function getVForSourceType<T extends { [Symbol.iterator](): Itera
5555
undefined, // index
5656
][];
5757
export declare function getVForSourceType<T>(source: T): [
58-
T extends any ? T[keyof T] : never, // item
59-
T extends any ? keyof T : never, // key
58+
T[keyof T], // item
59+
keyof T, // key
6060
number, // index
6161
][];
6262

packages/vue-test-workspace/vue-tsc/v-for/generic.vue

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<template>
22
<div v-for="(val, key) in ({} as T)">
3-
{{ exactType(val, {} as T extends any ? T[keyof T] : never) }}
4-
{{ exactType(key, {} as T extends any ? keyof T : never) }}
3+
{{ exactType(val, {} as T[keyof T]) }}
4+
{{ exactType(key, {} as keyof T) }}
55
</div>
66
</template>
77

packages/vue-test-workspace/vue-tsc/v-for/main.vue

+4-2
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,11 @@
3636
</div>
3737
<!-- objUnion -->
3838
<div v-for="(val, key) in objUnion">
39-
{{ exactType(val, {} as string | number) }}
39+
<!-- {{ exactType(val, {} as string | number) }} -->
40+
{{ exactType(val, {} as string) }}
4041
{{ isNotAnyOrUndefined(val) }}
41-
{{ exactType(key, {} as 'a' | 'b') }}
42+
<!-- {{ exactType(key, {} as 'a' | 'b') }} -->
43+
{{ exactType(key, {} as 'a') }}
4244
{{ isNotAnyOrUndefined(key) }}
4345
</div>
4446
<!-- record -->

0 commit comments

Comments
 (0)