Dans les tests Karma, il y a beaucoup de variables et de fonctions globales dont JSHint se plaint (il est intégré dans mon éditeur).
Comment puis-je dire à JSHint d'ignorer toutes les variables non définies dans ce fichier spécifique? Je m'attendrais à /* jshint undef: false */
pour désactiver ces avertissements, mais ce n'est pas le cas.
La bonne façon de renseigner JSHint sur les globaux est d'utiliser la directive globals
. Par exemple:
/*globals globalFunction, anotherGlobal, oneMore */
Cela empêchera les avertissements "{a} n'est pas défini" lorsque JSHint rencontre l'un des identificateurs répertoriés.
Alternativement, si vous voulez vraiment ignorer les avertissements tous "non définis" dans ce fichier et que vous utilisez JSHint 1.0.0 ou supérieur, vous pouvez simplement désactiver cet avertissement spécifique:
/*jshint -W117 */
Ajoutez simplement cette règle dans votre fichier .jshintrc.
"-W117": true
Cela ignorera tous les avertissements qui disent: "* n'est pas défini".
Ran dans ce problème en utilisant jshint cet après-midi. Cette correction suivante a fonctionné pour moi. Au lieu d'utiliser "globals", essayez d'utiliser "predef". Par exemple:
{
/*
* RELAXING OPTIONS
* =================
*/
// Suppress warnings about == null comparisons.
"eqnull": true,
"predef" : ["describe", "expect", "it", "inject", "beforeEach", "angular"]
}
Je me suis retrouvé à utiliser jshint ignore:line
pour répondre à ce besoin:
var non utiliséVar; // jshint ignore: ligne
Cela permet à jshint de poursuivre sa vérification utile de cette condition, mais lorsqu'il existe des raisons explicites d'ignorer une déclaration spécifique, l'ajout de cela résout le problème et le fait d'une manière qui est immédiatement évidente pour quiconque regarde le code.
Un bon exemple (du moins pour moi) est l'utilisation de la déstructuration d'ES6 pour illiciter un ensemble de raccourcis que vous pouvez ou non utiliser tout le temps. Dans Ember, j'utilise souvent de nombreuses méthodes qui en dépendent, telles que typeOf
et computed
. Plutôt que de toujours faire référence à Ember.computed
il est beaucoup plus agréable de se référer simplement à computed
et d'avoir quelque chose comme ce qui suit en haut de tous mes Ember objets:
const { computed, $, A, run, on, typeOf, debug, get, set } = Ember; // jshint ignore:line