web-dev-qa-db-fra.com

Comment désactiver les avertissements concernant 'this' et le mode strict avec JSHint?

J'écris une application web en utilisant AngularJS (v1.5), donc j'ai quelques contrôleurs, et dans ces contrôleurs, je déclare souvent quelque chose comme:

function myController($someDirectives, ...){
    var ctrl = this;
    // My code
}

Le problème, c’est que lorsque je JSHint mon code, je reçois ce message d’avertissement pour l’ensemble de mes "ceci" déclarés dans les contrôleurs:

Si une fonction en mode strict est exécutée à l'aide de l'invocation de la fonction, sa valeur "this" sera indéfinie.

Je dois préciser que dans mon fichier .jshintrc, je mets "strict":false. Quelqu'un sait-il comment désactiver ce message en particulier?

Merci d'avance.

13
NathanL

définir la configuration dans le fichier .jshintrc 

{
  "validthis": true // Tolerate using this in a non-constructor 
}
18
p0k8_

Vous pouvez toujours remplacer options jshint dans le bloc de code, par exemple.

/* jshint validthis: true */
6
Cmag

J'ai le même problème. Je fais " invocation indirect " avec la fonction en question, pas "invocation de fonction", et "this" est référencé plusieurs fois dans le corps de la fonction.

Dans mon cas, j’avais tellement de ces "erreurs" que jsHint s’est arrêté avant de scanner tout mon script.

Pour contourner cela, je mets ceci en haut de mon fichier script:

/*jshint maxerr: 10000 */

Cela ne supprimait pas les erreurs, mais au moins, cela me permettait de faire défiler l'écran pour voir l'analyse de jsHint de l'ensemble du script.

0
Lonnie Best