@@ -13,10 +13,10 @@ import type {UnknownArray} from './unknown-array';
13
13
* //=> type FlatArr0 = [number, string, number, string, number, string];
14
14
* ```
15
15
*/
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 > =
17
17
N extends 0
18
18
? R
19
- : BuildRepeatedArray < T , Subtract < N , 1 > , [ ...T , ...R ] > ;
19
+ : BuildRepeatedArray < T , Subtract < N , 1 > , [ ...R , ...CopyT ] > ;
20
20
21
21
type ArrayFlatOptions = {
22
22
/**
@@ -82,13 +82,15 @@ T extends UnknownArray
82
82
...Result ,
83
83
...(
84
84
T [ number ] extends UnknownArray
85
- ? BuildRepeatedArray < InternalArrayFlat <
85
+ ? InternalArrayFlat <
86
86
number extends T [ number ] [ 'length' ] ? T [ number ] : Partial < T [ number ] > ,
87
87
Subtract < Depth , 1 > ,
88
88
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.
92
94
: T
93
95
) ,
94
96
]
0 commit comments