Skip to content
This repository was archived by the owner on Aug 3, 2023. It is now read-only.

Commit 8cc05aa

Browse files
authored
Merge pull request #26 from totalolage/drop-infite-definition-fix
Fixed infinite definition on drop type
2 parents e33aad1 + cba56e8 commit 8cc05aa

File tree

2 files changed

+19
-0
lines changed

2 files changed

+19
-0
lines changed

lib/utils.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,10 @@ export type ConcatMultiple<TupleSet extends any[][]> = {
8484
]
8585

8686
export type Drop<Tuple extends any[], Quantity extends number, Count extends any[] = []> =
87+
[
88+
any[] extends Tuple ? true : false,
89+
number extends Quantity ? true : false
90+
] extends true[] ? Tuple :
8791
Tuple extends [] ? Tuple :
8892
Quantity extends Count['length'] ? Tuple :
8993
((...args: Tuple) => any) extends ((_: any, ..._1: infer Rest) => any)

spec/drop.ts

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,3 +20,18 @@ compare<
2020
Drop<[0, 1, 2, 3, 4, ...number[]], 9>,
2121
number[]
2222
>('equal')
23+
24+
compare<
25+
Drop<any[], number>,
26+
any[]
27+
>('equal')
28+
29+
compare<
30+
Drop<[], number>,
31+
[]
32+
>('equal')
33+
34+
compare<
35+
Drop<any[], 1>,
36+
any[]
37+
>('equal')

0 commit comments

Comments
 (0)