0

我在使用此打字稿代码时遇到编译器错误:)

我已经像这样定义了 playerBullets:

playerBullets: Array = Array[40];

并尝试这样做:

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

但是这段代码在市场上出现了红色语法错误:

WebUI/ts/game.ts(89,19):预期的变量、类、接口或模块 WebUI/ts/game.ts(88,29):无法将 '{}[]' 转换为 'Array'

如果我将定义更改为:

playerBullets  = [];

它有效,有什么想法吗?

4

1 回答 1

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;
});
于 2013-01-15T14:02:49.380 回答