Skip to content

Commit 3c19644

Browse files
committed
chore: fix ts infinite error
1 parent 2d80979 commit 3c19644

File tree

3 files changed

+9
-7
lines changed

3 files changed

+9
-7
lines changed

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@
4444
"expect-type": "^1.1.0",
4545
"npm-run-all2": "^7.0.1",
4646
"tsd": "^0.31.2",
47-
"typescript": "~5.8.2",
47+
"typescript": "^5.1.3",
4848
"xo": "^0.60.0"
4949
},
5050
"xo": {

source/array-flat.d.ts

+8-6
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,10 @@ import type {UnknownArray} from './unknown-array';
1313
* //=> type FlatArr0 = [number, string, number, string, number, string];
1414
* ```
1515
*/
16-
type BuildRepeatedArray<T extends UnknownArray, N extends number, R extends unknown[] = []> =
16+
type BuildRepeatedArray<T extends UnknownArray, N extends number, R extends unknown[] = [], CopyT extends UnknownArray = T> =
1717
N extends 0
1818
? R
19-
: BuildRepeatedArray<T, Subtract<N, 1>, [...T, ...R]>;
19+
: BuildRepeatedArray<T, Subtract<N, 1>, [...R, ...CopyT]>;
2020

2121
type ArrayFlatOptions = {
2222
/**
@@ -82,13 +82,15 @@ T extends UnknownArray
8282
...Result,
8383
...(
8484
T[number] extends UnknownArray
85-
? BuildRepeatedArray<InternalArrayFlat<
85+
? InternalArrayFlat<
8686
number extends T[number]['length'] ? T[number] : Partial<T[number]>,
8787
Subtract<Depth, 1>,
8888
Options
89-
>,
90-
Options['repeat']
91-
>
89+
> extends infer Item
90+
? Item extends UnknownArray
91+
? BuildRepeatedArray<Item, Options['repeat']>
92+
: never // Never happens, just for fixed ts error TS2589: Type instantiation is excessively deep and possibly infinite.
93+
: never // Never happens, just for fixed ts error TS2589: Type instantiation is excessively deep and possibly infinite.
9294
: T
9395
),
9496
]

[email protected]

Whitespace-only changes.

0 commit comments

Comments
 (0)