为什么我们在Typescript的curried函数中没有默认参数。
考虑以下示例:
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
带下划线的是错误部分。
仅在函数或构造函数中允许使用参数初始化程序 实施。
这就是林特所说的。如果是这样,有什么办法可以在咖喱函数中使用默认参数?
答案 0 :(得分:2)
要记住的重要一点是,当您声明函数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;
};
}