我使用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吗?
答案 0 :(得分:23)
根据当前的主分支,eslint-config-airbnb
目前禁用four syntax forms:
ForInStatement
ForOfStatement
LabeledStatement
WithStatement
您可以使用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
配置。