TS2371

error TS2371: A parameter initializer is only allowed in a function or constructor implementation.

Broken Code ❌

1
2
3
4
function add(a: number, b: number, c: number = 0): number;
function add(a: number | string, b: number | string, c: number | string = 0): number {
return parseInt(`${a}`, 10) + parseInt(`${b}`, 10);
}

Fixed Code ✔️

Remove parameter initializer from function overload:

1
2
3
4
function add(a: number, b: number, c: number): number;
function add(a: number | string, b: number | string, c: number | string = 0): number {
return parseInt(`${a}`, 10) + parseInt(`${b}`, 10);
}