Javascript “抑制jshint”;“错误”;

Javascript “抑制jshint”;“错误”;,javascript,gulp,jshint,Javascript,Gulp,Jshint,我有一个构造函数X来创建一个对象。稍后在文件中,我通过X.prototype.method=function(){…}添加了多个方法。虽然我意识到这是一个赋值语句,但它看起来和行为就像一个不需要分号的函数声明 gulp jshint坚持认为缺少的分号是一个错误,必须将其写成X.prototype.method=function(){…}。它生成一个错误,而不是一个我可以用-W####指令抑制的警告 是否仍有抑制此错误的方法?我意识到这是一个错误,我可以轻松地“修复”代码,但我更喜欢更干净的样式。

我有一个构造函数X来创建一个对象。稍后在文件中,我通过
X.prototype.method=function(){…}
添加了多个方法。虽然我意识到这是一个赋值语句,但它看起来和行为就像一个不需要分号的函数声明

gulp jshint坚持认为缺少的分号是一个错误,必须将其写成
X.prototype.method=function(){…}。它生成一个错误,而不是一个我可以用-W####指令抑制的警告


是否仍有抑制此错误的方法?我意识到这是一个错误,我可以轻松地“修复”代码,但我更喜欢更干净的样式。

请在代码中包含分号。他们打算结束一项声明。如果将函数设置为变量,则这是一条语句。如果您要声明一个函数,它不是一个语句,因此不会得到分号

无法仅在
var=function()
语句上启用分号插入。您唯一能做的就是在整个文件上启用分号插入。将此注释放在脚本的顶部:

/*jshint asi: true*/

asi代表允许分号插入。

JSHint在这里是正确的。您应该在赋值语句中添加尾随分号。但是JavaScript接受不带分号的代码。解决问题的一种方法是使用asi选项()完全禁用分号检查。

这是不正确的。在声明中不需要尾随分号,事实上,JSHint并不抱怨它。看见因此
函数xyzy(){…}
不需要分号,也不会生成错误消息。在我的例子中,它是必需的,因为它不仅仅是一个函数声明,它是一个赋值语句,其中被赋值的值就是被声明的函数。是的,它只对赋值是必需的。我写声明而不是作业。谢谢你的提示。我接受这个,因为它从两个方面回答了我的问题。首先,用JSHint无法实现我的要求。其次,
asi:true
,给了我一个大锤式的方法来获得我想要的东西。它比我想要的做得更多,但考虑到JSHint的工作方式,它仍然是可能的最佳答案。第一段没有必要——它重申了我在问题中已经提出的内容(另外还要求我加入分号,我显然不喜欢分号)。