2016-08-15 51 views
0

這是一直在困擾我的一段時間。在Typescript中,如果我定義了一個For-in循環,我的變量總是被視爲一個字符串。例如:TypeScript中的For-in循環總是把變量當作字符串處理

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

「room.placement.x」將失敗,因爲它將「房間」視爲字符串。 「this.rooms」實際上是Room對象的集合,但房間不是Room ...它是一個字符串。

這是一個Typescript版本的問題或一直堅持。這非常令人沮喪。

有沒有一種方法來定義房間,以便Typescript可以像房間一樣對待它?

房間的定義是:「包房:Room.Game.Room [];」它是自定義對象的數組。

+0

爲什麼你使用'for..in'與陣列?改用'.map'。 – Maxx

+0

雖然這可能是一個重複的問題,但布魯諾提供的答案是獨一無二的,正是我所需要的。 – BrianLegg

回答

2

如果this.rooms是一個數組,正確的語法是for ...of

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

for ... in遍歷鍵

看到this更多

+0

這正是我所期待的。謝謝。當定時器讓我時,我會接受你的回答。 – BrianLegg