簡體   English   中英

如何僅針對 ForOfStatement 關閉 ESLint 的無限制語法規則?

[英]How can I turn off ESLint's no-restricted-syntax rule just for ForOfStatement?

我將 ESLint 用於我的 ES6 程序,並帶有 AirBNB 規則集。 出於充分和充分的原因,我在我的代碼中使用了for...of構造,但 ESLint 反對它,發出no-restricted-syntax錯誤。

http://eslint.org/docs/rules/no-restricted-syntax 上的文檔解釋了我如何在我的.eslint文件中指定它反對的語法樹節點集:例如,如果我不喜歡的是with語句,我可以使用:

“無限制語法”:[“警告”,“WithStatement”]

但我不想指定一整套未經批准的結構,我只想說我認為這樣的結構可以。 概念上類似於

ESlint.rules['no-restricted-syntax'].removeEntry('ForOfStatement');

有沒有辦法在 ESLint 文件中做到這一點? 或者,如果失敗了,是否至少有一種方法可以讓它告訴我它當前no-restricted-syntax配置是什么,以便我可以從中手動刪除 ForOfStatement ?

檢查現有配置

基於當前的主分支, eslint-config-airbnb目前禁用四種語法形式

  1. ForInStatement
  2. ForOfStatement
  3. LabeledStatement
  4. WithStatement

您可以使用ESLint的--print-config CLI標志驗證這一點或查看是否存在任何差異:

$ eslint --print-config file.js

ESLint將打印出它將使用皮棉的配置file.js ,你可以找到的的配置no-restricted-syntax規則存在。

覆蓋no-restricted-syntax

如果要覆蓋Airbnb的預設,可以在.eslintrc.json文件的rules部分中.eslintrc.json操作:

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

除了單一語法形式之外, no-restricted-syntax將規則配置為使用從Airbnb預設繼承no-restricted-syntax配置。

在 .eslintrc.js 文件中添加以下代碼行以限制應用程序中的此錯誤

module.exports = {
  extends: ['airbnb-base', 'plugin:prettier/recommended'],
  plugins: ['no-only-tests'],
  rules: {
    'no-only-tests/no-only-tests': 2,
    "no-restricted-syntax": ["error", "ForInStatement", "LabeledStatement", "WithStatement"]
  },
};

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM