2011-11-02 12 views
6

En Eclipse, la siguiente línea de código JavaScript¿Por qué Eclipse a veces advierte sobre matrices de matrices en JavaScript?

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

genera las advertencias:

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

mientras

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

Genera:

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

y

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

genera:

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

Sin embargo, estas líneas son todos bien:

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

Parece que hay un problema con matrices de matrices, cuando los sub-arrays contienen la misma tipo primitivo. Sin embargo, no entiendo por qué, y el código parece funcionar bien. ¿Alguien puede explicar por qué está preocupado Eclipse?

+3

Solo mi .02 $ sobre el tema, pero el motor de eclipse Javascript es un poco cabreado sobre las cosas. Podría ser una peculiaridad en su funcionamiento. –

Respuesta

6

Parece un error. No existe esencialmente una incompatibilidad de tipos en Javascript.

Me atrevería a adivinar que el analizador que está haciendo esto se basó en un analizador de Java, y esto es un poco de ese analizador sintáctico original.

+1

[Aquí] (https://bugs.eclipse.org/bugs/show_bug.cgi?id=351345) es un ejemplo de un error similar en eclipse. –

+0

Sí, creo que debes tener razón. También hay otras advertencias bastante dudosas, como "var i; for (i en obj)" que da "la variable local, puede que no haya sido inicializado". –

0

Los validadores de JavaScript en eclipse pueden filtrar estos en las preferencias.

Cuestiones relacionadas