In Javascript, wenn ich will ein Wörterbuch Schleife durch und legen Sie die Eigenschaften eines anderen Wörterbuch, würde ich so etwas wie folgt verwenden:Typoskript hasOwnProperty Äquivalent
for (let key in dict) {
if (obj.hasOwnProperty(key)) {
obj[key] = dict[key];
}
}
Wenn obj
ist ein Typoskript Objekt (Instanz einer Klasse) Gibt es eine Möglichkeit, dieselbe Operation durchzuführen?
Ich habe eine Nebenfrage dazu; In Ihrem Fall initialisieren Sie die foo-Eigenschaft, die sicherstellt, dass sie im generierten js-Code vorhanden ist. Wenn die Eigenschaft jedoch nicht definiert ist, ist sie überhaupt nicht Teil des generierten Codes. Weißt du warum das so ist? Das hat mich ein wenig überrascht, als ich hasOwnProperty für eine Instanz benutzte und falsch zurückkam, obwohl ich erwartet hatte, dass sie vorhanden, aber nicht definiert war. – dSebastien
Nehmen wir an, dass undefinierte Eigenschaften, dh alle Eigenschaften, die im Typoskript 'Klasse A {prop1: string, prop2: number}} definiert sind, nicht von' Object.keys' oder 'this.hasOwnProperty (k)' seither aufgelistet werden Das Autogen-JavaScript kennt diese Eigenschaften nicht. – loretoparisi
Warum würden Sie 'Object.keys (obj) .forEach 'empfehlen (k =>' over 'for()'? – Coo