¿Hay alguna forma de suprimir la advertencia JSHint para una línea dada?

264

Tengo un caso (único) en mi aplicación donde se evalusa, y me gustaría suprimir la advertencia JSHint solo para este caso.

¿Hay alguna manera de lograr eso? Configuración, comentario mágico, ...?

Mike Aski
fuente

Respuestas:

465

Sí, hay una manera. Dos de hecho. En octubre de 2013, jshint agregó una forma de ignorar bloques de código como este:

// 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.

También puede ignorar una sola línea con un comentario final como este:

ignoreThis(); // jshint ignore:line
Jason Punyon
fuente
Para cualquiera que intente que los complementos JSHint Sublime Text 2/3 funcionen, deberá actualizar jshint específicamente en la carpeta del paquete ST. (Me encontré específicamente con esto con JSHint Gutter)
Josh
77
¿Es posible ignorar solo un error específico? p.ej. maxlen en esa línea específica aún detecta otros errores.
Jürgen Paul
44
gracias a Dios por // jshint ignore:line- funciona muy bien con;(function() { // jshint ignore:line
katy lavallee
44
La opción "ignorar" está en desuso, y aparece el error "opción incorrecta" usando la versión 0.9.9 de la función de integración JSHint en eclipse. ¿Hay alguna forma alternativa de hacer lo mismo?
MidnightJava
2
Eludí el bad option: 'ignore'uso de la opción específica para la línea que quiero ignorar. En mi caso, quería ignorar if (x == null)porque quiero que sea igual a algo más que nulo y que se use /* jshint eqnull:true */en la misma función ifque silenciar JSHint.
Nate
102

La respuesta "malvada" no funcionó para mí. En su lugar, utilicé lo recomendado en la página de documentos de JSHints . Si conoce la advertencia que se genera, puede desactivarla por un bloque de código. Por ejemplo, estoy usando un código de terceros que no utiliza funciones de mayúsculas y minúsculas, pero mis reglas de JSHint lo requieren, lo que generó una advertencia. Para silenciarlo, escribí:

/*jshint -W106 */
save_state(id);
/*jshint +W106 */
tollmanz
fuente
15
¿Y cómo calculo mi número de advertencia?
11684
3
Cuando ejecuta jshint y obtiene el error inicialmente, se informará el número.
tollmanz
55
Oh, lo siento. Olvidé dejar un comentario, así que no publiqué algo después de revisar los documentos. No lo es, debe agregar --verboseal comando para obtener el número de advertencia.
11684
9
Alternativamente, la respuesta a esta pregunta relacionada sugiere verificar messages.js . Encontré esto bastante útil ya que uso WebStorm.
Michael Jess
3
Todos los números de advertencia, error e información se pueden encontrar aquí: github.com/jshint/jshint/blob/master/src/messages.js
Anderson Arboleya
37

Como puede ver en la documentación de JSHint , puede cambiar las opciones por función o por archivo . En su caso, simplemente coloque un comentario en su archivo o incluso más local solo en la función que utiliza eval:

/*jshint evil:true */

function helloEval(str) {
    /*jshint evil:true */
    eval(str);
}
Odi
fuente
fwiw, esto no funcionó para mí con 2.1.9 pero funcionó después de actualizar a 2.1.11
kangax