如何为ForOfStatement关闭ESLint的无限制语法规则?

时间:2017-02-14 12:38:43

标签: ecmascript-6 eslint for-of-loop

我使用ESLint作为我的ES6程序,使用AirBNB规则集。出于充分和充分的理由,我在代码中使用for...of构造,但ESLint对其进行了反对,发出no-restricted-syntax错误。

http://eslint.org/docs/rules/no-restricted-syntax处的文档解释了我如何在.eslint文件中指定它所反对的语法树节点集:例如,如果我不喜欢的是with声明,我可以使用:

  

“no-restricted-syntax”:[“warn”,“WithStatement”]

但我不想指定一整套未经批准的结构,我只是想说我认为这样的结构可以。概念上类似于

的东西
  

ESlint.rules [ '没有限制的语法'] removeEntry( 'ForOfStatement');

有没有办法在ESLint文件中执行此操作?或者,如果失败了,至少有一种方法可以告诉我它当前的no-restricted-syntax配置是什么,所以我可以从中手动删除ForOfStatement吗?

1 个答案:

答案 0 :(得分:23)

检查现有配置

根据当前的主分支,eslint-config-airbnb目前禁用four syntax forms

  1. ForInStatement
  2. ForOfStatement
  3. LabeledStatement
  4. WithStatement
  5. 您可以使用ESLint --print-config CLI flag来验证这一点或查看是否存在任何差异:

    $ eslint --print-config file.js
    

    ESLint会打印出用于lint file.js的配置,你可以在那里找到no-restricted-syntax规则的配置。

    覆盖no-restricted-syntax

    如果您想覆盖Airbnb预设,可以在rules文件的.eslintrc.json部分执行此操作:

    {
        "rules": {
            "no-restricted-syntax": ["error", "ForInStatement", "LabeledStatement", "WithStatement"]
        }
    }
    

    除了单一语法格式外,没有办法将规则配置为使用继承自Airbnb预设的no-restricted-syntax配置。