Enumerations, auch bekannt als Enums, sind ein spezieller Typ in TypeScript, der es ermöglicht, eine Sammlung von verwandten Werten zu definieren. Enums sind nützlich, wenn man Werte definieren möchte, die einen bestimmten Satz von benannten Konstanten repräsentieren.
Ein einfacher Enum kann wie folgt definiert werden:
enum Direction {
Up,
Down,
Left,
Right
}In diesem Beispiel haben wir einen Enum Direction
definiert, der vier mögliche Werte hat: Up,
Down, Left und Right. Wir können
diese Werte dann in unserem Code verwenden:
let dir: Direction;
dir = Direction.Up;Standardmäßig werden die Werte der Enum-Elemente ab 0 aufwärts gezählt, können aber auch explizit festgelegt werden:
enum StatusCode {
Success = 200,
BadRequest = 400,
Unauthorized = 401
}In diesem Fall sind Success, BadRequest und
Unauthorized Werte für den Enum StatusCode,
die auf die entsprechenden HTTP-Statuscodes gesetzt sind.
Manchmal möchte man die Enum-Werte als Zeichenketten statt als Zahlen repräsentieren. Dazu kann man sogenannte String Enums verwenden:
enum Color {
Red = "RED",
Green = "GREEN",
Blue = "BLUE"
}In diesem Fall sind Red, Green und
Blue Werte der Zeichenketten für den Enum
Color.
Enums können dazu beitragen, den Code lesbarer und sicherer zu machen, indem sie es ermöglichen, eine klare Menge von benannten Konstanten zu definieren.
Aufgabe 1: Definieren Sie eine Konstante mit dem Namen “maxLimit”, die die maximale Anzahl von Elementen in einem Array darstellt. Versuchen Sie dann, “maxLimit” zu ändern und beobachten Sie, was passiert.
Aufgabe 2: Definieren Sie ein Enum “Farben”, das die Werte “Rot”, “Grün” und “Blau” enthält. Verwenden Sie das Enum, um die Farbe eines Autos in einer Variable zu speichern.
Aufgabe 3: Schreiben Sie eine Funktion, die einen Parameter akzeptiert, der ein Wert aus dem Enum “Farben” sein soll. Die Funktion soll eine Nachricht ausgeben, die sich auf die Farbe bezieht.
Aufgabe 4: Ändern Sie das Enum “Farben”, um den Werten spezielle Nummern zuzuweisen. Beispielsweise könnte “Rot” den Wert 3 haben, “Grün” den Wert 5 und “Blau” den Wert 10.
Aufgabe 5: Verwenden Sie das Enum “Farben”, um ein Array zu definieren, das nur Farben enthält. Überprüfen Sie die Länge des Arrays und geben Sie die Farbe am Index 1 aus.
Aufgabe 6: Definieren Sie ein weiteres Enum namens “Tage” für die Tage der Woche. Der Enum soll die Werte “Montag” bis “Sonntag” enthalten.
Aufgabe 7: Schreiben Sie eine Funktion, die einen Wert aus dem Enum “Tage” als Parameter akzeptiert und einen String zurückgibt, der beschreibt, ob es sich um einen Werktag oder ein Wochenende handelt.
Lösung 1:
const maxLimit = 100;
// maxLimit = 200; // Fehler, da Sie den Wert einer Konstante nicht ändern können.Lösung 2:
enum Farben {
Rot,
Gruen,
Blau
}
let autoFarbe: Farben = Farben.Rot;Lösung 3:
enum Farben {
Rot,
Gruen,
Blau
}
function beschreibeFarbe(farbe: Farben) {
if(farbe === Farben.Rot) {
console.log("Die Farbe ist rot.");
} else if(farbe === Farben.Gruen) {
console.log("Die Farbe ist grün.");
} else if(farbe === Farben.Blau) {
console.log("Die Farbe ist blau.");
}
}Lösung 4:
enum Farben {
Rot = 3,
Gruen = 5,
Blau = 10
}Lösung 5:
enum Farben {
Rot,
Gruen,
Blau
}
let farbArray: Farben[] = [Farben.Rot, Farben.Gruen, Farben.Blau];
console.log(farbArray.length); // Gibt "3" aus.
console.log(farbArray[1]); // Gibt "1" aus, was dem numerischen Wert von "Gruen" entspricht.Lösung 6:
enum Tage {
Montag,
Dienstag,
Mittwoch,
Donnerstag,
Freitag,
Samstag,
Sonntag
}Lösung 7:
enum Tage {
Montag,
Dienstag,
Mittwoch,
Donnerstag,
Freitag,
Samstag,
Sonntag
}
function beschreibeTag(tag: Tage): string {
switch(tag) {
case Tage.Montag:
case Tage.Dienstag:
case Tage.Mittwoch:
case Tage.Donnerstag:
case Tage.Freitag:
return "Es ist ein Werktag.";
case Tage.Samstag:
case Tage.Sonntag:
return "Es ist Wochenende.";
}
}