【发布时间】:2017-04-26 09:27:52
【问题描述】:
我在一个 Angular 示例中遇到了这个结构,我想知道为什么选择它:
_ => console.log('Not using any parameters');
我了解变量 _ 表示不关心/未使用,但由于它是唯一变量,因此有任何理由更喜欢使用 _:
() => console.log('Not using any parameters');
当然,这不能少一个字符来输入。 () 语法在我看来更好地传达了意图,并且也更具体,因为否则我认为第一个示例应该如下所示:
(_: any) => console.log('Not using any parameters');
如果它很重要,这是使用它的上下文:
submit(query: string): void {
this.router.navigate(['search'], { queryParams: { query: query } })
.then(_ => this.search());
}
【问题讨论】:
-
您怎么会担心从未使用过的参数的类型或类型特异性?
-
我是一名 C++ 开发人员,所以我想我总是担心类型特异性 :-)。
-
就个人而言,_=> 模式减少了括号的数量,使其更易于阅读:doStuff().then(()=>action()) vs doStuff().then(_=>动作())。
标签: javascript typescript ecmascript-6 arrow-functions