Javascript Typescript返回值或curried函数
给定以下Typescript代码,我得到一个错误Javascript Typescript返回值或curried函数,javascript,typescript,currying,Javascript,Typescript,Currying,给定以下Typescript代码,我得到一个错误 TS2349:无法调用其类型缺少调用签名的表达式。类型“AddReturnType”没有兼容的呼叫签名。 为什么AddReturnType不能处理该调用 type AddReturnType = number | ((arg0: number) => number); function add(x: number, y?: number) : AddReturnType { if (!y) { return (val
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
?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
?它应该是。这是我的一个输入错误。x
、y
和val
都有一个隐式的any
类型。@BrandonOlivier我还没有写出来--strict
-ly,如果没有启用implicitany,你必须添加更多显式类型。这是我的一个输入错误。x
、y
和val
都有一个隐式any
类型。@BrandonOlivier我还没有写出来--strict
-ly,如果没有启用隐式类型,你必须添加更多显式类型