javascript - 此 TypeScript Lambda 表达式中的括号是什么意思?

标签 javascript typescript lambda ecmascript-6

我正在读一本关于 Angular 的书,但我找不到任何有关 lambda 表达式 [hours, rate]) => this.total = hours * rate 的括号用法的文档。 。尽管我知道我可以从 lambda 表达式主体内部使用这些参数(小时和费率)。我不明白为什么这个(hours, rate) => this.total = hours * rate)不起作用,为什么我必须使用括号 []。

Observable.combineLatest(this.invoiceForm.get('hours').valueChanges,
this.invoiceForm.get('rate').valueChanges).subscribe(
  ([hours, rate]) => this.total = hours * rate);

有人可以解释一下它的含义以及在哪里可以找到有关该用法的文档。

注意:我知道combineLatest 的作用是使用这些括号的 lambda 表达式,但我不明白。

最佳答案

就像 destructuring assignment :

function test([a, b]) {
  console.log(a, ',', b)

}

test([1, 2])

[a, b] 是函数的一个参数。如果将数组作为第一个参数传递给函数,则数组的第一个元素将存储在 a 中,第二个元素将存储在 b 中。

关于javascript - 此 TypeScript Lambda 表达式中的括号是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54303116/

相关文章:

javascript - 是否可以在导航栏中隐藏标题 Logo ,但在 Bootstrap 中向下滚动时会出现?

node.js - 在 typescript 中使用 Electron API

java - 编译错误 : Lambda Target Type Intersection Type

javascript - Array.push() 和独特的项目

javascript - anchor 标签重定向以响应 spa

javascript - 如何使用JEST测试递归函数的时程

angular - 为什么 typescript 中的抽象属性不保留 protected 关键字

java - 使用函数式接口(interface) (lambda) 从 POJO 列表中收集值

excel - 递归 LAMBDA 用查找表中的特定替换替换字符

javascript - webpack-dev-server npm run dev 抛出 TypeError : Cannot set property 'port' of undefined