web-dev-qa-db-fra.com

Existe-t-il un moyen de supprimer l’avertissement JSHint pour une ligne donnée?

J'ai un (seul) cas dans mon application où eval est utilisé, et j'aimerais supprimer l'avertissement JSHint uniquement pour ce cas.

Y a-t-il un moyen d'y parvenir? Configuration, commentaire magique, ...?

250
Mike Aski

Oui, il y a un moyen. Deux en fait. Dans octobre 201 , jshint a ajouté un moyen d'ignorer des blocs de code comme celui-ci:

// Code here will be linted with JSHint.
/* jshint ignore:start */
// Code here will be ignored by JSHint.
/* jshint ignore:end */
// Code here will be linted with JSHint.

Vous pouvez également ignorer une seule ligne avec un commentaire de fin comme celui-ci:

ignoreThis(); // jshint ignore:line
454
Jason Punyon

La réponse "perverse" n'a pas fonctionné pour moi. Au lieu de cela, j'ai utilisé ce qui était recommandé sur le JSHints page docs . Si vous connaissez l'avertissement émis, vous pouvez le désactiver pour un bloc de code. Par exemple, j'utilise un code tiers qui n'utilise pas les fonctions de cas de chameau, pourtant mes règles JSHint l'exigent, ce qui a entraîné un avertissement. Pour le faire taire, j'ai écrit:

/*jshint -W106 */
save_state(id);
/*jshint +W106 */
97
tollmanz

Comme vous pouvez le voir dans le documentation de JSHint vous pouvez modifier les options par fonction ou par fichier . Dans votre cas, placez simplement un commentaire dans votre fichier ou même plus local simplement dans la fonction qui utilise eval:

/*jshint evil:true */

function helloEval(str) {
    /*jshint evil:true */
    eval(str);
}
37
Odi