让我们考虑一下示例:
function func1(num: number) {
return num * 2;
}
function func2(by: number, num = func1(1)) {
return num / by;
}
效果很好。在func2
中,不必为num
参数提供类型,因为它是从func1
提供的。
但是当我以参数对象解构的形式编写func2
时,我必须在num
中手动为func3
提供一种类型:
function func3({ by, num = func1(1) }: { by: number, num: number }) {
return num / by;
}
如何编写func3
而不用重新键入num
的类型?这样的事情(下面的代码不起作用):
function func3({ by, num = func1(1) }: { by: number }) {
return num / by;
}
答案 0 :(得分:1)
不幸的是,目前没有更好的方法。改善这一想法的想法已经浮出水面了一段时间,但是编译器团队尚未找到一个好的想法。 This问题是最新的建议,@ RyanCavanaugh说,他们正在再次尝试,请看看结果如何。现在,您必须在类型注释
中再次写出名称。