Sonarqube vs eslint规则(命名函数vs匿名函数)

时间:2016-10-08 14:09:17

标签: node.js sonarqube anonymous eslint

我为mongoose架构编写了这段代码:

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,而{{1}}应该绑定到函数调用者而不是箭头函数的范围。

我该如何编写代码?

1 个答案:

答案 0 :(得分:1)

这两个选项都有效:请阅读SonarQube ruleeslint rule的说明。事实上,可以将eslint规则配置为强制执行一个选择或相反的选择。如果要强制执行一条规则,工具就可以提供帮助。