2013-01-15 51 views
0

我有這個打字稿代碼:)編譯器錯誤打字稿編譯器錯誤:無法將「{} []」爲「陣」

我定義playerBullets像這樣:

playerBullets: Array = Array[40]; 

並嘗試做到這一點:

this.playerBullets = this.playerBullets.filter(function (bullet) { 
    return bullet.active; 
}); 

但是這個代碼已被市場用紅色語法錯誤:

WebUI/ts/game.ts(89,19): Expected var, class, interface, or module WebUI/ts/game.ts(88,29): Cannot convert '{}[]' to 'Array'

如果我改變的定義是:

playerBullets = []; 

它的工作原理,任何想法?

回答

2

您需要定義數組是這樣的:

playerBullets: bullet[] = new Array(40); 

而且整個代碼看起來就像這樣:

interface bullet{ 
    active :bool; 
} 

var playerBullets:bullet[] = new Array(40) 

playerBullets = playerBullets.filter(function (bullet) { 
    return bullet.active; 
}); 

當然,你不必定義子彈類型(但如果您使用打字稿,您可能需要)

var playerBullets:any = new Array(40) 

playerBullets = playerBullets.filter(function (bullet) { 
    return bullet.active; 
}); 
+0

很多謝謝隊友 – Nikos