私はゲームボードを定義するいくつかのタイルを手続き的に生成する必要があるプロジェクトに取り組んでいます。私の計画は、これらの 'Tile'オブジェクトを 'Land'オブジェクトの多次元配列プロパティに保持することです。このようにして、配列の行と列は、配列とゲームボードの両方のタイルの位置に対応します。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」に等しくなければならない;:一言で言えば、私はこのような何かをしようとしています
"error TS2339: Property 'tMethod' does not exist on type 'Thing[]'"
は、オブジェクトを格納するための多次元配列の使用は活字体でこのよう不可能である、または私は、コードの構造/構文のエラーを作っています:代わりに、活字体のコンパイラは、このようなエラーを返しますか?
EDIT:次のように、上記の構文は、実際に正しい、私は誤って、配列の最初の次元にのみ呼ばれるコードにデバッグ線を残した:
testEnv.thingArray[0].tMethod();
には、このことでしたコンパイルエラーが発生しました。
指定したコードで問題を再現できません。正しく動作します。あなたの実際のソースの入力ミスでしょうか? 'testEnv.thingArray [0] .tMethod();'と書くと、私が得るエラーはあなたが記述したものと同じです。 –
John Whiteが言ったことはまさに正しいです。私は誤って配列の最初の次元だけを参照するデバッグ行を残していました。コンパイル中にエラーを投げていました。お手伝いありがとう! – calebjmatthews