¿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, ...?

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

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

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);
}

fwiw, esto no funcionó para mí con 2.1.9 pero funcionó después de actualizar a 2.1.11
— kangax
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.