web-dev-qa-db-fra.com

Comment puis-je désactiver la règle de syntaxe sans restriction d'ESLint uniquement pour ForOfStatement?

J'utilise ESLint pour mon programme ES6, avec le jeu de règles AirBNB. Pour de bonnes raisons, j'utilise le for...of construction dans mon code, mais ESLint s'y oppose, en émettant un no-restricted-syntax Erreur.

La documentation sur http://eslint.org/docs/rules/no-restricted-syntax explique comment je peux spécifier dans mon .eslint fichier l'ensemble de nœuds d'arborescence de syntaxe auquel il s'oppose: par exemple, si tout ce que je n'aime pas est l'instruction with, je peux utiliser:

"syntaxe sans restriction": ["warn", "WithStatement"]

Mais je ne veux pas spécifier un ensemble complet de constructions non approuvées, je veux juste dire que je considère qu'une telle construction est OK. Quelque chose de conceptuellement similaire à

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

Existe-t-il un moyen de le faire dans le fichier ESLint? Ou, à défaut, existe-t-il au moins un moyen de me faire dire quel est son no-restricted-syntax la configuration est, donc je peux en supprimer manuellement ForOfStatement?

24
Mike Taylor

Vérifier la configuration existante

Basé sur la branche principale actuelle, eslint-config-airbnb Désactive actuellement quatre formes de syntaxe :

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

Vous pouvez le vérifier ou voir s'il y a des différences en utilisant --print-config CLI flag ESLint :

$ eslint --print-config file.js

ESLint imprimera la configuration qu'il utiliserait pour lint file.js, Et vous pouvez y trouver la configuration de la règle no-restricted-syntax.

Remplacer no-restricted-syntax

Si vous souhaitez remplacer le préréglage d'Airbnb, vous pouvez le faire dans la section rules de votre fichier .eslintrc.json:

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

Il n'y a aucun moyen de configurer la règle pour utiliser la configuration no-restricted-syntax Héritée du préréglage d'Airbnb, à l'exception d'une seule forme de syntaxe.

32
btmills