ESLint:如何在文件中设置“新大写”规则的“capIsNewExceptions”选项

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

本文关键字:新大写 规则 选项 capIsNewExceptions 设置 文件 ESLint      更新时间:2023-09-26

这是我尝试将 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*/,其中我收集到正在设置quotescurly规则,并且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 — 使其成为错误。

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