javascript - es6 - eslint
¿Cómo decirle a JSHint que ignore todas las variables indefinidas en un archivo? (4)
La forma correcta de decirle a JSHint acerca de los globales es usar la directiva globals
. Por ejemplo:
/*globals globalFunction, anotherGlobal, oneMore */
Esto evitará que las advertencias "{a} no se definan" cuando JSHint encuentre alguno de los identificadores enumerados.
Alternativamente, si realmente quiere ignorar todas las advertencias "no definidas" en ese archivo, y está usando JSHint 1.0.0 o superior, simplemente puede desactivar esa advertencia específica:
/*jshint -W117 */
En las pruebas de Karma, hay muchas variables y funciones globales, de lo que JSHint se queja (está integrado en mi editor).
¿Cómo puedo decirle a JSHint que ignore todas las variables indefinidas en este archivo específico? Esperaría /* jshint undef: false */
para desactivar estas advertencias, pero no es así.
Me he encontrado usando jshint ignore:line
como una forma de abordar esta necesidad:
var no utilizadoVar; // jshint ignorar: línea
Esto permite a jshint continuar con su útil comprobación de esta condición, pero cuando existen razones explícitas para ignorar una declaración específica, en lugar de agregar esto, ambas resuelven el problema y lo hacen de una manera que es evidente para cualquiera que mire el código.
Un buen ejemplo (al menos para mí) es cuando se usa la desestructuración de ES6 para hacer ilícitas un conjunto de atajos que puede o no usar todo el tiempo. En Ember, a menudo uso muchos de los métodos que cuelgan de él, como typeOf
y computed
. En lugar de referirme siempre a Ember.computed
, es mucho mejor simplemente referirse a computed
y tener algo como lo siguiente en la parte superior de todos mis objetos Ember:
const { computed, $, A, run, on, typeOf, debug, get, set } = Ember; // jshint ignore:line
Se encontró con este problema usando jshint esta tarde. La siguiente solución funcionó para mí. En lugar de usar "globales", intente usar "predef". Por ejemplo:
{
/*
* RELAXING OPTIONS
* =================
*/
// Suppress warnings about == null comparisons.
"eqnull": true,
"predef" : ["describe", "expect", "it", "inject", "beforeEach", "angular"]
}
Simplemente agregue esta regla en su archivo .jshintrc.
"-W117": true
Esto ignorará todas las advertencias que dicen: "* no está definido".