有没有办法压制JSHint警告为一个给定的行?

我在我的应用程序中有一个(单一)的情况是eval被使用,我想压制JSHint警告仅在这种情况下。

有办法实现吗?配置,神奇的评论,…?

104931 次浏览

正如你在JSHint的文档中看到的,你可以改变选项每个函数每个文件。在你的情况下,只需在你的文件中放置一个注释,甚至更局部地只在使用eval的函数中放置注释:

/*jshint evil:true */


function helloEval(str) {
/*jshint evil:true */
eval(str);
}

“邪恶”的答案对我不起作用。相反,我使用了JSHints 文档页面上的建议。如果知道抛出的警告,可以在一段代码中关闭它。例如,我正在使用一些不使用驼峰大小写函数的第三方代码,但我的JSHint规则要求它,这导致了一个警告。为了让它安静下来,我写道:

/*jshint -W106 */
save_state(id);
/*jshint +W106 */

是的,有办法。事实上是两个。在2013年10月中,jshint增加了一种忽略代码块的方法,如下所示:

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

你也可以忽略带有尾随注释的一行,就像这样:

ignoreThis(); // jshint ignore:line