Bonjour, je rencontre un problème lorsque mon framework utilise jshint pour valider mon code javascript
. J'ai utilisé intentionnellement switch-case sans instruction break, mais cette partie du code est capturée comme une erreur lorsque jshint
vérifie. Mon code est quelque chose comme ci-dessous.
switch (<no>){
case 1:
// does something
case 2:
//does something more
default:
// does something even more
}
Error from 'jshint' is like Line 203 character 41: Expected a 'break' statement before 'case'.
Avez-vous des idées sur la façon de l'éviter? ou est-ce une mauvaise pratique d’utiliser des cas de commutation dans ce scénario?
Copier/coller depuis la documentation :
Changer les instructions
Par défaut, JSHint vous avertit lorsque vous omettez des instructions break ou return dans les instructions switch:
[...]
Si vous savez vraiment ce que vous faites, vous pouvez dire à JSHint que vous voulait que le bloc de cas tombe en ajoutant un commentaire
/* falls through */
Donc dans votre cas:
switch (<no>) {
case 1:
// does something
/* falls through */
case 2:
//does something more
/* falls through */
default:
// does something even more
}
Exactement, break
s peut être totalement superflu, comme dans cet exemple
function mapX(x){
switch (x){
case 1:
return A;
case 2:
return B;
default:
return C;
}
}
Dans ce cas, si vous aviez eu une break
après return
, JS Standard émettrait un avertissement, à savoir Unreachable code
.
Essayer de concilier jshint et JS Standard est délicat, mais comme indiqué, la solution serait
function mapX(x){
switch (x){
case 1:
return A;
/* falls through */
case 2:
return B;
/* falls through */
default:
return C;
}
}