方括号在此TypeScript Lambda表达式中是什么意思?

时间:2019-01-22 07:22:13

标签: 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表达式用法。

2 个答案:

答案 0 :(得分:4)

就像destructuring assignment

compile group: 'org.apache.tomcat', name: 'tomcat-jdbc', version: '9.0.10'

function test([a, b]) { console.log(a, ',', b) } test([1, 2])是函数的一个参数。而且,如果将数组作为第一个参数传递给函数,则数组的第一个元素将存储在[a, b]中,第二个元素将存储在a中。

答案 1 :(得分:0)

combine最新的rx运算符:

任何可观察对象发出一个值时,请从每个观察对象中发出最新值。

https://www.learnrxjs.io/operators/combination/combinelatest.html