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.

Relaterte artikler