让我们考虑一下例如:
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;
}
目前还没有更好的办法,遗憾的是做到这一点。如何改善这种想法已经漂浮了一段时间,但编译器团队一直没有找到一个好的呢。 This问题的最新建议,@RyanCavanaugh说,他们正在给它另一种尝试,也看看会发生什么吧。现在,你必须在类型的注释再次写名字