Bra*_*ier 0 javascript currying typescript
鉴于以下Typescript代码,我收到一个错误
TS2349: Cannot invoke an expression whose type lacks a call signature. Type 'AddReturnType' has no compatible call signatures.
为什么不能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);
Run Code Online (Sandbox Code Playgroud)
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);
Run Code Online (Sandbox Code Playgroud)
那说,不应该val + x吗?
| 归档时间: |
|
| 查看次数: |
36 次 |
| 最近记录: |