在不需要返回时忽略JavaScript或TypeScript中的箭头函数内隐式返回是错误的

use*_*183 4 javascript typescript

我经常遇到类似这样的代码:

ngOnDestroy() {
  this.subscriptions.forEach(subscription => subscription.unsubscribe());
}
Run Code Online (Sandbox Code Playgroud)

我的问题是,如果这是,虽然在这个例子中是无害的,但是一个不好的做法,因为这里的含义是有一个返回值等于任何unsubscribe()方法返回.

上面的代码没有任何需要从箭头函数返回任何东西,但在那里有一个隐式返回,即,正文被翻译成return subscription.unsubscribe().

将该功能编码如下是一种更好的做法吗?(注意额外的花括号):

ngOnDestroy() {
  this.subscriptions.forEach(subscription => {
    subscription.unsubscribe();
  });
}
Run Code Online (Sandbox Code Playgroud)

Zoh*_*jaz 8

箭头函数减少了你编写的代码,因此隐式返回有助于保存一些击键:)但是,在你的第二个例子中,即使有一个返回undefined.所以这不是一种不好的做法,它更清洁,更短.