Typescript: använda Object.keys för att iterera över en ordbok
Så jag har detta gränssnitt för mitt lexikon och jag initierar det nedan.
export interface IHash {
[tagName: string] : string;
}
var x : IHash = {};
x["first"] = "details";
x["second"] = "details";
Jag kör let keys=Object.keys(x); och skriver sedan ut mina keys och jag får 0 1. Det ser ut som om det skriver ut indexen. Jag hade förväntat mig att det skulle skriva first och second. Måste jag loopa igenom det för att få det resultatet?
Svar #1
Hur gör du din utskrift av keys? Det här är vad jag ser i ts-node
> export interface IHash { [tagName: string] : string; } var x : IHash = {}; x["first"] = "details"; x["second"] = "details";
'details'
> Object.keys(x);
[ 'first', 'second' ]
>
vilket antyder att felet ligger i din utskrift snarare än i värdet på nycklarna.
Kallar du kanske Object.keys två gånger i rad? Första gången skulle det ge dig [ 'first', 'second' ] och andra gången skulle det ge dig [ '0', '1' ]
