Prečo Eclipse niekedy varuje pred poľami polí v JavaScripte?


V Eclipse nasledujúci riadok JavaScriptu

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

generuje varovania:

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

zatiaľ čo

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

generuje :

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

a

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

generuje :

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

Avšak tieto riadky sú všetky v poriadku:

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

Zdá sa, že existuje problém s poliami polí, keď podpolia obsahujú rovnaký primitívny typ. Avšak nechápem prečo a kód sa zdá vykonávať v poriadku. Mohol by mi niekto vysvetliť, čo sa Eclipse obáva?

Odpoveď č. 1

Vyzerá to ako chyba. V podstate v JavaScripte neexistuje niečo ako nezlučiteľnosť typov.

Riskol by som si tipnúť, že parser, ktorý toto robí, bol založený na Java parseri, a toto je trochu toho pôvodného parsera, ktorý preráža.

Odpoveď č. 2

JavaScript validátory v Eclipse ich môžu filtrovať v predvoľbách.