Sonarqube vs eslint rules (named function vs anonymous function)
I've written this code for a mongoose schema:
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 is complaining (major, code smell) about Make this function anonymous by removing its name (cross-browser, user-experience)
,
If I remove the name then eslint
простирающийся airbnb
complains (warning) about [eslint] Missing function expression name. (func-names)
,
I can't transform it to an arrow function as it makes use of this
, а также this
should be bind to function caller and not to scope of arrow function.
Как мне написать код?
1 ответ
Оба варианта могут быть действительными: прочитайте описание правила SonarQube и правила eslint. На самом деле, правило eslint может быть сконфигурировано для обеспечения одного или другого выбора. Инструменты здесь, чтобы помочь, если вы хотите применить одно правило.