我正在处理一个项目,需要程序化生成一些瓷砖来定义游戏板。我的计划是将这些“Tile”对象保存在“Land”对象的多维数组属性中。这样,数组的行和列对应于瓷砖在数组和游戏板上的位置。简言之,我试图做类似这样的事情:
变量'squaredThing'应该等于25;但是TypeScript编译器返回了以下错误:
这就是导致编译错误的原因。
class Thing {
tProp: number = 5;
tMethod() {this.tProp *= this.tProp;}
}
class Environment {
thingArray: Thing[][];
}
var testEnv = new Environment;
testEnv.thingArray = [];
testEnv.thingArray[0] = [];
testEnv.thingArray[0][0] = new Thing;
var squaredThing = testEnv.thingArray[0][0].tMethod();
变量'squaredThing'应该等于25;但是TypeScript编译器返回了以下错误:
"error TS2339: Property 'tMethod' does not exist on type 'Thing[]'"
在TypeScript中,使用多维数组以这种方式存储对象是不可能的吗?还是我的代码结构/语法有误?
编辑:上面列出的语法实际上是正确的。我错误地在代码中留下了一个调试行,只引用了数组的第一维,如下所示:
testEnv.thingArray[0].tMethod();
这就是导致编译错误的原因。
testEnv.thingArray[0].tMethod();
,我得到的错误与您描述的完全相同,这是预期的。 - John Weisz