Skip to content

Commit 519392f

Browse files
committed
feat: add 0399-hard-tuple-filter
1 parent c04ff05 commit 519392f

File tree

2 files changed

+31
-0
lines changed

2 files changed

+31
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
type FilterOut<T extends any[], F, R extends unknown[] = []> = T extends [
2+
infer First,
3+
...infer Rest
4+
]
5+
? [First] extends [F]
6+
? FilterOut<Rest, F, R>
7+
: FilterOut<Rest, F, [...R, First]>
8+
: R;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
import type { Equal, Expect } from "@type-challenges/utils";
2+
3+
type cases = [
4+
Expect<Equal<FilterOut<[], never>, []>>,
5+
Expect<Equal<FilterOut<[never], never>, []>>,
6+
Expect<Equal<FilterOut<["a", never], never>, ["a"]>>,
7+
Expect<Equal<FilterOut<[1, never, "a"], never>, [1, "a"]>>,
8+
Expect<
9+
Equal<
10+
FilterOut<
11+
[never, 1, "a", undefined, false, null],
12+
never | null | undefined
13+
>,
14+
[1, "a", false]
15+
>
16+
>,
17+
Expect<
18+
Equal<
19+
FilterOut<[number | null | undefined, never], never | null | undefined>,
20+
[number | null | undefined]
21+
>
22+
>
23+
];

0 commit comments

Comments
 (0)