Das Schlüsselwort keyof
in TypeScript dient dazu, eine generische Einschränkung anzugeben. Es ist ein Operator, der einen Typ akzeptiert und den passenden Satz für gültige Schlüssel für das Objekt erzeugt. Dies ist besonders nützlich, insbesondere wenn Sie mit generischen Funktionen arbeiten
Beispielsweise, wenn Sie ein Objekt wie unten definiert haben:
type Schueler = {
name: string;
alter: number;
klasse: string;
};
Dann würde keyof Schueler
die Menge { 'name', 'alter', 'klasse' }
erzeugen. Dieser neue Typ kann dann beispielsweise in Funktionen verwendet werden, die dynamisch auf Eigenschaften eines solchen Objekts zugreifen.
Eine potenzielle Anwendung könnte folgendermaßen aussehen:
function getProperty<T, K extends keyof T>(obj: T, key: K): T[K] {
return obj[key];
}
const peter: Schueler = {
name: "Peter",
alter: 15,
klasse: "9A",
};
console.log(getProperty(peter, 'name')); // Output: Peter
In diesem Beispiel stellt keyof T
sicher, dass das key
Argument immer ein gültiger Schlüssel des übergebenen Objekts obj
ist. Es wird automatisch überprüft, ob der angegebene Schlüssel in dem Objekt existiert und ob der Rückgabetyp der Funktion übereinstimmt.
Das keyof
Schlüsselwort ist ein leistungsstarkes Werkzeug in TypeScript zur Verbesserung der Stellen, wo Sie dynamische Eigenschaftszugriffe auf Objekten brauchen, und es erlaubt Ihnen, sowohl die Typsicherheit als auch die Autocomplete-Funktionen des Editors zu behalten, die eine der großen Stärken von TypeScript sind.
Es ist immer eine gute Praxis, möglichst viele Informationen über die Typen Ihrer Daten zur Entwurfszeit anzugeben. Durch den richtigen Einsatz von keyof
und anderen TypeScript-Features können Sie komplexe Typdefinitionen einfach und sicher handhaben.