javascript - For-in-løkke i TypeScript behandler alltid variabel som en streng
Dette er noe som har plaget meg en stund nå. I TypeScript, hvis jeg definerer en for-in-løkke, blir variabelen min alltid behandlet som en streng. Eksempel:
for(var room in this.rooms) {
room.placement.x = 52;
}
room.placement.x vil mislykkes fordi det behandler room som en streng. this.rooms er faktisk en samling av Room-objekter, men room er ikke en Room... det er en streng.
Er dette et TypeScript-versjonsproblem eller noe som blir værende? Det er svært frustrerende.
Finnes det en måte å definere room på slik at TypeScript kan behandle det som et Room?
Definisjonen av rom er: private rooms: Room.Game.Room[];
Det er et array av egendefinerte objekter.
Svar #1
Hvis this.rooms er et array, er den riktige syntaksen for ...of:
for (let room of this.rooms) {
room.placement.x = 52;
}
for ... in itererer over nøklene.
Se dette for mer.
