2013-01-15 57 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