J'obtiens une erreur lorsque j'exécute ESLint sur mon code JavaScript.
var crslWt = 100; var totCrslWt = (crslWt/2)-20;
J'obtiens une erreur
Parenthèses gratuites autour de l'expression no-extra-parens
3 Réponses :
Supprimez simplement les parenthèses autour de crslWt / 2
.
/
opérateur a priorité sur -
, donc les parenthèses dans ce cas sont techniquement redondantes
Parfois, ce n'est pas immédiatement clair et des parenthèses supplémentaires sont utiles pour accélérer la lecture.
Il semble que vous deviez appliquer l'option {"nestedBinaryExpressions": false}
.
Depuis documentation officielle :
Exemples de code correct pour cette règle avec "tous" et { "nestedBinaryExpressions": false} options:
/* eslint no-extra-parens: ["error", "all", { "nestedBinaryExpressions": false }] */ x = a || (b && c); x = a + (b * c); x = (a * b) / c;
Le simple fait de supprimer les parenthèses résoudra le problème, mais parfois vous voulez des parenthèses pour plus de clarté. Par exemple un || (b && c) provoquera l'avertissement, mais a || b && c ne semble pas aussi clair pour certaines personnes (y compris moi-même). Oui, les parents sont extra, mais leur ajout clarifie la déclaration au lecteur.
Puis supprimez les parenthèses pour se conformer à la règle?
Ce n'est pas comme si le code contenait une abondance de parenthèses. Il n'est pas difficile de savoir à quelle paire il fait référence.
Si je supprime les parenthèses dans quel ordre la priorité des opérateurs fonctionne?
@crazyarun - Avez-vous essayé en cherchant ou en espérant que le linter est correct quand il dit que les parenthèses sont gratuites?
Première division, puis soustraction. ESLint en est conscient, c'est pourquoi vous obtenez l'erreur. Si le code était
crslWt / (2-20);
alors la suppression des crochets modifie la signification et ESLint n'émettra pas de violation de règle.Ici
(crslWt / 2) - 20;
je viens de donner la priorité à l'ordre de calcul.(crslWt / 2) - 20
etcrslWt / 2 - 20
sont identiques en termes d'exécution et de résultat. C'est pourquoi les parenthèses sont redondantes et vous obtenez ainsi la violation de règle d'ESLint.oh ... merci mec .. @vlaz
Des parenthèses @vlaz sont ajoutées pour gagner en lisibilité et il est très courant de voir ce formatage dans n'importe quel langage de programmation (même les exercices de mathématiques scolaires, bien que les règles en mathématiques soient les mêmes)
@ MosèRaguzzini Je le sais mais si la règle est activée, alors le style de code interdit de faire cela. Par conséquent, pour se conformer au guide de style, les paranthèses doivent être supprimées. Cela, à son tour, ne changerait pas le sens de l'expression. Je ne sais pas pourquoi vous avez choisi de clarifier quelque chose qui n'était pas en question ici.
@vlaz la question indique «Besoin de corriger l'erreur eslint ..» afin que vous puissiez corriger soit linter, soit le code. Le code Bacause doit être aussi lisible que possible, je préférerais réparer le linter, c'est tout.