Mik*_*lor 23 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语句, 我可以用:
"无限制语法":["警告","WithStatement"]
但是我不想指定一整套未经批准的结构,我只想说我认为这样的结构可以.在概念上类似的东西
ESlint.rules [ '没有限制的语法'] removeEntry( 'ForOfStatement');
有没有办法在ESLint文件中执行此操作?或者,如果失败了,至少有一种方法可以让它告诉我它当前的no-restricted-syntax配置是什么,所以我可以从中手动删除ForOfStatement吗?
btm*_*lls 30
基于当前主分支,eslint-config-airbnb当前禁用四种语法形式:
ForInStatementForOfStatementLabeledStatementWithStatement您可以使用ESLint的--print-configCLI标志验证这一点或查看是否存在任何差异:
$ eslint --print-config file.js
Run Code Online (Sandbox Code Playgroud)
ESLint将打印出用于lint file.js的配置,您可以在no-restricted-syntax那里找到规则的配置.
no-restricted-syntax如果您想覆盖Airbnb的预设,您可以在文件rules部分中执行此.eslintrc.json操作:
{
"rules": {
"no-restricted-syntax": ["error", "ForInStatement", "LabeledStatement", "WithStatement"]
}
}
Run Code Online (Sandbox Code Playgroud)
no-restricted-syntax除了单一语法形式之外,没有办法将规则配置为使用继承自Airbnb预设的配置.
可以,但前提是您使用 JS 配置文件。
在旧的配置系统(.eslintrc.js)中:
const styleConfig = require('eslint-config-airbnb-base/rules/style');
const [_severity, ...restrictedSyntax] = styleConfig.rules['no-restricted-syntax'];
Run Code Online (Sandbox Code Playgroud)
在新的平面配置( eslint.config.js) 中:
const compat = new FlatCompat({
baseDirectory: __dirname,
recommendedConfig: js.configs.recommended,
});
const airbnb = compat.extends('airbnb');
const [_severity, ...restrictedSyntax] = airbnb.find(c => c.rules?.['no-restricted-syntax']);
Run Code Online (Sandbox Code Playgroud)
然后restrictedSyntax根据需要操纵变量。
| 归档时间: |
|
| 查看次数: |
5046 次 |
| 最近记录: |