В следующем фрагменте кода, где я объявил метод add с карри.
const add = (a: number) => {
return (b?: number) => {
return (b === undefined ? a : add(a + b))
}
}
Это прекрасно работает, если я вызываю это со следующими аргументами:
add(1)()
Но машинопись выдает следующую ошибку, когда я называю это так:
add(1)(2)()
Cannot invoke an expression whose type lacks a call signature. Type 'number | ((b?: number) => number | ...)' has no compatible call signatures.
Что мне нужно добавить, чтобы включить типовое использование этого метода?