【问题标题】:ESLint: How to set "new-cap" rule's "capIsNewExceptions" option within a file?ESLint:如何在文件中设置“new-cap”规则的“capIsNewExceptions”选项?
【发布时间】:2015-09-06 00:13:32
【问题描述】:

这是我尝试设置 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 警告。

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

【问题讨论】:

  • 这是一个很好的规则——为什么不遵守呢?当需要new 的东西时,请使用大写字母。否则,小写(对于函数、对象等)?
  • @Cymen 我认为这是一个非常好的例外,也是Node String 库的标准用法。 (见npmjs.com/package/string#node-js
  • 这绝对是主观的,但我倾向于将string 用于该库。

标签: javascript eslint


【解决方案1】:

试试

/*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 等可能的配置属性的对象。

【讨论】:

    猜你喜欢
    • 2021-06-18
    • 2020-10-09
    • 1970-01-01
    • 2022-07-20
    • 2019-11-10
    • 2019-07-09
    • 1970-01-01
    • 2020-12-02
    • 2020-07-22
    相关资源
    最近更新 更多