ESLint:如何在文件中设置 "new-cap" 规则的 "capIsNewExceptions" 选项?

ESLint: How to set "new-cap" rule's "capIsNewExceptions" option within a file?

这是我尝试设置 ESLint's 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 documentation

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

然后,从 the actual documentation for new-cap 中,我发现 capIsNewExceptions 作为一个选项提供,并且该选项的值应该是所需函数名称的数组 - 就像我尝试过的那样在上面的代码中执行。

但是没用。我仍然收到 ESLint 警告。

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

尝试

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

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

关于使用数组将选项传递给规则的做法是正确的,但在 the docs 他们提到该数组的第一个元素始终是“规则 ID”:从 0 到 2 的数字,它定义该规则的应用方式:
0 — 禁用规则,
1 — 使其成为警告,
2 — 使其成为一个错误。

我懒得检查,但我假设数组的其余部分作为 contextoptions 属性 传递给规则本身。从 new-cap 规则的 source code 来看,它似乎只需要一个选项,该选项是一个具有可能配置属性的对象,如 capIsNewExceptionsnewIsCap