TypeScript не может определить, возвращаете ли вы number
или функцию, и только один из двух вариантов может быть вызван.Разделите две подписи функций:
function add(x: number): (number) => number;
function add(x: number, y: number): number;
function add(x, y?) {
if (!y) {
return (val) => val + y;
}
return x + y;
}
add(1)(2);
Тем не менее, не должно ли это быть val + x
?