Jyo*_*aja 3 currying typescript
为什么 Typescript 中的柯里化函数不能有默认参数。
考虑以下示例:
function add(a: number): (b: number, c:number = 0) => number {
^^^^^^^^^^^^
return function(b: number, c: number = 0): number {
return a + b + c;
}
}
add(10)(5); //I want to call like this
Run Code Online (Sandbox Code Playgroud)
下划线部分为错误部分。
参数初始值设定项仅允许在函数或构造函数实现中使用。
这就是 linter 所说的。如果是这种情况,有什么办法可以让柯里化函数具有默认参数吗?
要记住的重要一点是,当您声明函数时add,(b: number, c:number = 0) => number返回类型 - 您是在告诉编译器什么类型的函数可以作为返回值。默认值不是类型的一部分,而是实现的一部分。
然而,使参数可选是类型的一部分,因此这是有效的:
function add(a: number): (b: number, c?: number) => number {
return function(b: number, c: number = 0): number {
return a + b + c;
};
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2015 次 |
| 最近记录: |