gpt4 book ai didi

使用默认参数的 typescript

转载 作者:搜寻专家 更新时间:2023-10-30 21:32:42 25 4
gpt4 key购买 nike

为什么我们不能在 Typescript 的柯里化(Currying)函数中使用默认参数。

考虑以下示例:

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

划线部分为错误部分

A parameter initializer is only allowed in a function or constructor implementation.

这就是 linter 所说的。如果是这种情况,是否有任何方法可以在 curried 函数上使用默认参数?

最佳答案

要记住的重要一点是,当您声明函数 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;
};
}

关于使用默认参数的 typescript ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56946127/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com