Skip to content

Commit 89c0f06

Browse files
test: ensure pick only one member
1 parent 085d1d5 commit 89c0f06

File tree

1 file changed

+4
-3
lines changed

1 file changed

+4
-3
lines changed

test-d/union-member.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,9 @@ expectType<never>({} as UnionMember<never>);
1212
expectType<unknown>({} as UnionMember<unknown>);
1313
expectType<any>({} as UnionMember<any>);
1414

15+
// Ensure exactly one member is selected at a time, while covering all members in the union.
1516
type UnionToTupleWithExclude<T, L = UnionMember<T>> =
1617
IsNever<T> extends false
17-
? [...UnionToTupleWithExclude<Exclude<T, L>>, L]
18-
: [];
19-
expectType<1 | 2 | 3>({} as UnionToTupleWithExclude<1 | 2 | 3>[number]);
18+
? UnionToTupleWithExclude<Exclude<T, L>> | [L]
19+
: never;
20+
expectType<[1] | [2] | [3]>({} as UnionToTupleWithExclude<1 | 2 | 3>);

0 commit comments

Comments
 (0)