如何阻止错误消息Expected '===' and instead saw '=='.
出现在jslint中。
似乎不是一种选择。
答案 0 :(得分:24)
对于使用JSHint的用户,可以通过在JSHint选项中将选项 eqeqeq 设置为false来关闭此警告(通常为 .jshintrc )
"eqeqeq": false
来自文档:http://jshint.com/docs/options/#eqeqeq
编辑:
如果您想成为一个好公民并修改您的代码以使用建议的比较而不是关闭警告,请确保比较的两侧使用相同的类型。
例如:
"123" == 123 // true, I'm lazy and JSHint hates me
"123" === 123 // false, no love
Number("123") === 123 // true, no warning
答案 1 :(得分:10)
媒体对此非常热烈。
Douglas Crockford刚刚在JSLint工具中添加了'eqeq'选项。
参见2011年6月12日关于GitHub的编辑之一:
广告编写时尚未在JSLint首页上更新,但我已使用以下内容对其进行了测试,并且未收到==
相关警告:
/*jslint eqeq: true*/
var x = 0;
if (x == 1) {
alert("test");
}
答案 2 :(得分:3)
你是对的,没有选择。唯一的方法是使用===
或修改source code。无论如何,我几乎总是使用===
。除非你知道==
你想要什么,否则它会更好。
答案 3 :(得分:0)
尽管它的价值已经很晚了,但是它将帮助一些有需要的人
要禁用使用-
/* eslint eqeqeq: 0 */
将其用作警告-
/* eslint eqeqeq: 1 */
答案 4 :(得分:0)
相同的错误告诉我可以使用这种方式修复
status.user_profile.toString() === props.props.id.toString()
我正在使用React js举个例子,我正在使用类似的东西
id = 1
如果我的多余参数显示出这样的样子
params :{ id:"1" }
如果我这样过分
id == params.id // output true
如果我这样过分
id === params.id // output false
因为不是100%的等价性,所以请向我显示终端错误
Expected '===' and instead saw '=='
所以我可以考虑并通过转换相同的数据类型来解决它
id.toString() === params.id.toString() // return true