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 规则可以配置为强制执行一种选择或相反的选择。如果您想执行一项规则,工具只是在这里提供帮助。