2016-08-15 5 views
0

これは今私を悩ませています。 Typescriptでは、For-inループを定義すると、my変数は常に文字列として扱われます。例:For-in in loop in Typescriptは常に文字列のような変数を扱います。

for(var room in this.rooms) { 
    room.placement.x = 52; 
} 

「room」を文字列として扱うため、「room.placement.x」は失敗します。 "this.rooms"は実際にはルームオブジェクトのコレクションですが、部屋は部屋ではありません。それは文字列です。

Typescriptのバージョンの問題なのですか?それは非常にイライラしています。

Typescriptが部屋のように扱えるように部屋を定義する方法はありますか?

部屋の定義は次のとおりです: "個室:Room.Game.Room [];"

カスタムオブジェクトの配列です。

+0

多くのためthisを見ていますか?代わりに '.map'を使います。 – Maxx

+0

これは重複した質問かもしれませんが、Brunoによって提供される答えはユニークであり、まさに私が必要としていたものです。 – BrianLegg

答えて

2

this.roomsが配列の場合は配列で `for..in`を使用する理由、適切な構文は、キーの上にfor ...of

for (let room of this.rooms) { 
    room.placement.x = 52; 
} 

for ... in繰り返し処理は

+0

これはまさに私が探していたものです。ありがとうございました。私はあなたの答えを受け入れて、タイマーが私を許します。 – BrianLegg