打字稿函数参数解构与局部类型注释

问题描述 投票:0回答:1

让我们考虑一下例如:

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;
}
typescript
1个回答
1
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.