这是我尝试将 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*
/,其中我收集到正在设置quotes
和curly
规则,并且quotes
规则包含两个选项,因此包含在括号中,因为文档说If a rule has additional options, you can specify them using array literal syntax
(它在示例上方说了这一点)。
然后,从 new-cap
的实际文档中,我发现capIsNewExceptions
作为一个选项提供的,并且此选项的值应该是所需函数名称的数组 - 就像我在上面的代码中尝试做的那样。
但它不起作用。 我仍然收到 ESLint 警告。
支持在 Javascript 文件中自定义new-cap
规则的capIsNewExceptions
选项以用于 ESLint 的正确语法是什么?
尝试
/*eslint new-cap: [2, {capIsNewExceptions: ["S"]}]*/
var S = require("string");
var lines = S(text).lines();
现在,为什么它会以这种方式工作?
使用数组将选项传递给规则是正确的,但在文档中他们提到此数组的第一个元素始终是"规则 ID":从 0 到 2 的数字,它定义了该规则的应用方式:
0
— 禁用规则,
1
- 使其成为警告,
2
— 使其成为错误。
我懒得检查,但我假设数组的其余部分作为context
的options
属性传递给规则本身。从new-cap
规则的源代码来看,它似乎只需要一个选项,即具有可能的配置属性(如capIsNewExceptions
、newIsCap
等)的对象。