鉴于以下 Typescript 代码,我收到错误
TS2349:无法调用类型缺少调用签名的表达式。类型“AddReturnType”没有兼容的调用签名。
为什么 AddReturnType
不能用于该调用?
type AddReturnType = number | ((arg0: number) => number);
function add(x: number, y?: number) : AddReturnType {
if (!y) {
return (val) => val + y;
}
return x + y;
}
add(1)(2);
最佳答案
TypeScript 无法确定您返回的是数字
还是函数,并且这两个选项中只有一个是可调用的。将两个函数签名分开:
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
吗?
关于javascript - Typescript 返回值或柯里化(Currying)函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54426795/