为什么 Eclipse 有时会警告 JavaScript 中的数组数组?

Why does Eclipse sometimes warn about arrays of arrays in JavaScript?

提问人:Charles Anderson 提问时间:11/2/2011 最后编辑:Charles Anderson 更新时间:6/15/2016 访问量:1595

问:

在 Eclipse 中,以下 JavaScript 行

var a1 = [[1, 2], [3, 4]];

生成警告:

Type mismatch: cannot convert from Number[] to any
Type mismatch: cannot convert from Number[] to any

var a2 = [['w', 'x'], ['y', 'z']];

生成:

Type mismatch: cannot convert from String[] to any
Type mismatch: cannot convert from String[] to any

var a3 = [[1, 2], ['y', 'z']];

生成:

Type mismatch: cannot convert from Number[] to any
Type mismatch: cannot convert from String[] to any

但是,这些行都没问题:

var a4 = [[1, 'x'], [3, 'y']];
var a5 = [[1, 2]];
var a6 = [['x', 'y']];

当子数组包含相同的基元类型时,数组的数组似乎存在问题。但是,我不明白为什么,代码似乎执行正常。有人可以解释一下 Eclipse 担心什么吗?

JavaScript的 阵 列 日蚀

评论

3赞 Dave G 11/2/2011
只是我在这个问题上的 .02$,但 eclipse Javascript 引擎对事情有点生气。可能只是其操作中的一个怪癖。

答:

6赞 Paul Butcher 11/2/2011 #1

它看起来像一个错误。在 Javascript 中基本上没有类型不匹配这样的事情。

我冒昧地猜测,这样做的解析器是基于 Java 解析器的,这是原始解析器的一部分。

评论

1赞 Paul Butcher 11/2/2011
下面是 eclipse 中类似 bug 的一个示例。
0赞 Charles Anderson 11/3/2011
是的,我认为你一定是对的。还有其他一些相当可疑的警告,例如“var i;for (i in obj)“给出”局部变量 i 可能尚未初始化“。
0赞 Dominic Cerisano 6/15/2016 #2

eclipse 中的 javascript 验证器可以在首选项中过滤掉这些。