How can I turn off ESLint's no-restricted-syntax rule just for ForOfStatement?
我将ESLint用于带有AirBNB规则集的ES6程序。出于充分充分的理由,我在代码中使用了for...of构造,但是ESLint对此对象进行了处理,从而发出了no-restricted-syntax错误。
http://eslint.org/docs/上的文档rules / no-restricted-syntax解释了如何在我的.eslint文件中指定它所针对的语法树节点集:例如,如果我不喜欢的只是with语句,则可以使用:
"no-restricted-syntax": ["warn","WithStatement"]
但是我不想指定一整套未经批准的构造,我只是想说我认为这样的构造还可以。在概念上类似于
ESlint.rules['no-restricted-syntax'].removeEntry('ForOfStatement');
的东西在ESLint文件中是否可以执行此操作?或者,如果失败,是否至少有一种方法可以告诉我它当前的no-restricted-syntax配置是什么,所以我可以从其中手动删除ForOfStatement?
- 一个捷径,而不是最佳的答案,是将禁用的eslint规则与对块,行或文件的注释一起使用。
- 如果您已经安装了airbnb规则集,您一定可以在相应的配置文件中查找它吗?
- 谢谢,阿米尔。我知道如何告诉ESLint"忽略此行"或"忽略此行的规则":我想更具野心,并告诉ESLint我认为使用for...of总是可以的。
检查现有的config
基于当前主分支,eslint-config-airbnb当前禁用四种语法形式:
ForInStatement
ForOfStatement
LabeledStatement
WithStatement
您可以使用ESLint的--print-config CLI标志来验证这一点或查看是否存在任何差异:
1
| $ eslint --print-config file.js |
ESLint将打印出来配置文件,它会用于填充file.js,并且您可以在其中找到no-restricted-syntax规则的配置。
覆盖no-restricted-syntax
如果要覆盖Airbnb \\的预设,则可以这样做在.eslintrc.json文件的rules部分中:
1 2 3 4 5
| {
"rules": {
"no-restricted-syntax": ["error","ForInStatement","LabeledStatement","WithStatement"]
}
} |
没有任何方法可以配置规则以使用从Airbnb的预设继承的no-restricted-syntax配置语法形式。
- 谢谢,btmills。我缺少的一个难题是--print-config,这至少使我可以手工制作.eslint规则配置,该规则配置对继承的内容进行了最小的更改。
- 可惜没有办法修改.eslintrc和现有的规则配置而不是替换它。但既然如此,您的回答就会告诉我所有需要知道的事情。我会在找到正确的按钮后立即接受它!
- 如何启用ForInStatement和ForOfStatement?