2

这是我尝试将ESLint 的 new-cap规则设置为接受"S"为允许的函数名称:

/*eslint new-cap : [capIsNewExceptions : ["S"]] */
var S = require("string");
var lines = S(text).lines(); // <-- ESLint still gives a warning for cap 'S'!

如前所述,我的 ESLint 解析器(在 IntelliJ 中)继续给我new-cap警告。

我试图仔细应用ESLint 文档

这里,我看到一个示例规则,如下所示:/*eslint quotes: [2, "double"], curly: 2*/,我在其中收集到quotesandcurly规则正在设置,并且该quotes规则包含两个选项,因此它们包含在括号中,因为文档说If a rule has additional options, you can specify them using array literal syntax(它说这个就在示例上方)。

然后,从的实际文档中new-cap,我发现capIsNewExceptions它作为一个选项提供,并且该选项的值应该是所需函数名称的数组 - 就像我在上面的代码中尝试做的那样。

但它不起作用。我仍然收到 ESLint 警告。

capIsNewExceptions支持在 Javascript 文件中自定义规则选项以new-cap与 ESLint 一起使用的正确语法是什么?

4

1 回答 1

6

尝试

/*eslint new-cap: [2, {capIsNewExceptions: ["S"]}]*/
var S = require("string");
var lines = S(text).lines();

现在,为什么它会这样工作?

您对使用数组将选项传递给规则是正确的,但是在文档中他们提到该数组的第一个元素始终是“规则 ID”:从 0 到 2 的数字,它定义了如何应用该规则:
0-禁用规则,
1——使它成为一个警告,
2——使它成为一个错误。

我懒得检查,但我假设数组的其余部分options作为context. 从规则的源代码来看new-cap,它似乎只需要一个选项,即具有可能配置属性的对象,如capIsNewExceptions,newIsCap等。

于 2015-06-20T06:47:17.503 回答