JSLint(2011年六月到七月之间的版本)在遇到尝试改变赋值给变量的数据类型时会抛出"Type confusion: {a} and {b}"的错误。以下是示例代码:
这个错误是为了强调潜在的让人感到困惑的代码片段。当你对一个变量赋值时,一般都会期望在整个程序中获得同一个变量类型。但是在JavaScript中你可以自由修改任意变量的任意值,而不用考虑它现在的值,所以对于这个警告有很多基于语言本身的原因。
事实上,在JSLint中对这个错误的提示的生命周期是如此之短,以至于这看起来就像是一个实验,从未真正被公开使用过。不幸的是,由于一些使用了老版本的JSLitn的内置的JavaScript提示功能,类型检测仍然存在,它出现在很多IDE和编辑器中。
为了解决这个问题(假设你想要拥有对变量赋予不同类型的值的能力),你需要升级到最新版本的JSLint。如果不能升级,那么你可以设置confusion这个选项: