Closed
Description
Bug Report
π Search Terms
- A rest element type must be an array type.
- Error on spread expression with a generic that returns a tuple
π Version & Regression Information
- This changed between versions v4.4.3 and 4.5.0-dev.20211003
β― Playground Link
4.5.0-dev.20211003 Playground link (error happens)
v4.4.3 Playground link (no errors)
π» Code
type NTuple<N extends number, Tup extends unknown[] = []> =
Tup['length'] extends N ? Tup : NTuple<N, [...Tup, unknown]>;
type Add<A extends number, B extends number> =
[...NTuple<A>, ...NTuple<B>]['length'];
/* ~~~~~~~~~~~~
A rest element type must be an array type. (2574)
*/
let five: Add<2, 3>;
π Actual behavior
Getting a A rest element type must be an array type.
error for ...NTuple<A>
.
π Expected behavior
No errors should happen, and no error happens on TypeScript v4.4.3.