Sonarqube vs eslint 规则(命名函数 vs 匿名函数)
Sonarqube vs eslint rules (named function vs anonymous function)
我已经为猫鼬模式编写了这段代码:
localeTypesSchema.statics.findAndModify =
function findAndModify(query, sort, update, options, callback) {
const promised = q.nbind(this.collection.findAndModify, this.collection);
return promised(query || {}, sort || [], update || {}, options, callback);
};
SonarQube 抱怨(主要,代码味道)关于 Make this function anonymous by removing its name (cross-browser, user-experience)
。
如果我删除名称,那么 eslint
扩展 airbnb
会抱怨(警告)关于 [eslint] Missing function expression name. (func-names)
。
我无法将它转换为箭头函数,因为它使用了 this
,并且 this
应该绑定到函数调用者而不是箭头函数的范围。
代码应该怎么写?
两种选择都有效:阅读SonarQube rule and of the eslint rule的描述。事实上,eslint 规则可以配置为强制执行一种选择或相反的选择。如果您想执行一项规则,工具只是在这里提供帮助。
我已经为猫鼬模式编写了这段代码:
localeTypesSchema.statics.findAndModify =
function findAndModify(query, sort, update, options, callback) {
const promised = q.nbind(this.collection.findAndModify, this.collection);
return promised(query || {}, sort || [], update || {}, options, callback);
};
SonarQube 抱怨(主要,代码味道)关于 Make this function anonymous by removing its name (cross-browser, user-experience)
。
如果我删除名称,那么 eslint
扩展 airbnb
会抱怨(警告)关于 [eslint] Missing function expression name. (func-names)
。
我无法将它转换为箭头函数,因为它使用了 this
,并且 this
应该绑定到函数调用者而不是箭头函数的范围。
代码应该怎么写?
两种选择都有效:阅读SonarQube rule and of the eslint rule的描述。事实上,eslint 规则可以配置为强制执行一种选择或相反的选择。如果您想执行一项规则,工具只是在这里提供帮助。