TS2370

error TS2370: A rest parameter must be of an array type.

Broken Code ❌

1
2
3
4
5
function sum(...array: number): number {
return array.reduce((a, b) => a + b);
}

console.log(sum(...[1, 2, 3, 4, 5]));

Fixed Code ✔️

A rest parameter allows a function to accept an indefinite number of parameters. To signal that it can be multiple values, we have to use an array type for our rest parameter:

1
2
3
4
5
function sum(...array: number[]): number {
return array.reduce((a, b) => a + b);
}

console.log(sum(...[1, 2, 3, 4, 5]));