403 Stimmen

Deklariere und initialisiere ein Wörterbuch in Typescript

Angesichts des folgenden Codes

Schnittstelle IPerson {
   firstName: string;
   lastName: string;
}

var personen: { [id: string]: IPerson; } = {
   "p1": { firstName: "F1", lastName: "L1" },
   "p2": { firstName: "F2" }
};

Warum wird die Initialisierung nicht abgelehnt? Immerhin hat das zweite Objekt nicht die Eigenschaft "lastName".

9voto

vikingfabian Punkte 305

Record funktioniert ähnlich wie ein C#-Wörterbuch

let myRecord: Record = {}; 

//Hinzufügen
myRecord["key1"] = 1;

//Entfernen
delete myRecord["key1"];

//Schleife
for (var key in myRecord) {
    var value = myRecord[key];
}

7voto

Michele Ordile Punkte 116

Wenn Sie eine einfache Möglichkeit suchen, ein Wörterbuch auch in TypeScript zu erstellen, verwenden Sie das Map-Objekt. Der Link zur Dokumentation https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map. Das Map-Objekt verfügt über die Hauptmethoden zum Hinzufügen, Abrufen, Löschen und Entfernen aller Elemente.

dictionary = new Map();
dictionary.set("key", "value");
dictionary.get("key");
dictionary.delete("key");
dictionary.clear(); // Entfernt alle Schlüssel-Wert-Paare

4voto

Wenn Sie eine Eigenschaft ignorieren möchten, kennzeichnen Sie sie als optional, indem Sie ein Fragezeichen hinzufügen:

interface IPerson {
    firstName: string;
    lastName?: string;
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X