2011-11-02 26 views
6

Trong Eclipse, dòng sau của JavaScriptTại sao Eclipse đôi khi cảnh báo về mảng mảng trong JavaScript?

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

tạo ra những lời cảnh báo:

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

khi

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

tạo:

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

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

tạo:

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

Tuy nhiên, những dòng này đều okay:

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

Dường như có một vấn đề với các mảng của mảng, khi các tiểu mảng chứa cùng kiểu nguyên thủy. Tuy nhiên, tôi không hiểu tại sao, và đoạn mã dường như vẫn hoạt động tốt. Ai đó có thể giải thích những gì Eclipse đang lo lắng?

+3

Chỉ cần 0,02 đô la của tôi về chủ đề nhưng công cụ Javascript nhật thực hơi bực dọc về mọi thứ. Có thể chỉ là một điều kỳ quặc trong hoạt động của nó. –

Trả lời

6

Dường như lỗi. Về cơ bản không có thứ gì như một kiểu không phù hợp trong Javascript.

Tôi sẽ nguy hiểm khi đoán rằng trình phân tích cú pháp đang thực hiện việc này dựa trên một trình phân tích cú pháp Java, và đây là một chút của trình phân tích cú pháp gốc đó đang xem qua.

+1

[Ở đây] (https://bugs.eclipse.org/bugs/show_bug.cgi?id=351345) là một ví dụ về một lỗi tương tự trong nhật thực. –

+0

Vâng, tôi nghĩ bạn phải đúng. Có một số cảnh báo khá đáng ngờ khác nữa, chẳng hạn như "var i; for (i in obj)" cho "biến cục bộ tôi có thể chưa được khởi tạo". –

0

Trình xác thực javascript trong nhật thực có thể lọc chúng trong tùy chọn.

Các vấn đề liên quan