So verwenden Sie Enums in TypeScript Schritt für Schritt

Enums in TypeScript sind eine Möglichkeit, eine Reihe benannter Konstanten zu definieren, die zur Darstellung einer Sammlung verwandter Werte verwendet werden können. Sie machen Code lesbarer und wartbarer, indem sie diesen Werten benutzerfreundliche Namen geben. Diese Anleitung führt Sie Schritt für Schritt durch die Verwendung von Enums in TypeScript und behandelt ihre Typen, Vorteile und praktische Beispiele.

Was ist eine Enumeration?

Ein enum (kurz für "enumeration") ist ein spezieller Datentyp in TypeScript, mit dem Sie eine Reihe benannter Konstanten definieren können. Diese benannten Konstanten können numerische oder Zeichenfolgenwerte darstellen, wodurch Ihr Code aussagekräftiger und weniger fehleranfällig wird.

Arten von Enumerationen in TypeScript

Es gibt drei Arten von Enumerationen in TypeScript:

  • Numerische Enumerationen
  • Zeichenfolgenaufzählungen
  • Heterogene Enumerationen

Numerische Enumerationen

Numerische Enumerationen sind die Standardeinstellung in TypeScript. Sie sind eine Reihe benannter Werte, denen automatisch numerische Werte zugewiesen werden, beginnend bei 0 oder bei Angabe eines benutzerdefinierten Startwerts.

Einfaches numerisches Enumerationsbeispiel

Unten sehen Sie ein einfaches Beispiel einer numerischen Aufzählung:

enum Direction {
  Up,
  Down,
  Left,
  Right
}

let move: Direction = Direction.Up;
console.log(move); // Output: 0

In diesem Beispiel hat die Enumeration Direction vier Mitglieder: Up, Down, Left und Right. Standardmäßig wird Up der Wert 0 zugewiesen, Down ist 1 und so weiter. Sie können für die Mitglieder auch benutzerdefinierte numerische Werte angeben.

Numerische Aufzählung mit benutzerdefinierten Werten

Sie können den Enumerationsmitgliedern benutzerdefinierte Werte zuweisen:

enum Status {
  New = 1,
  InProgress,
  Done = 5,
  Cancelled
}

console.log(Status.New); // Output: 1
console.log(Status.InProgress); // Output: 2
console.log(Status.Done); // Output: 5
console.log(Status.Cancelled); // Output: 6

In diesem Beispiel wird Neu auf 1 gesetzt, InProgress wird automatisch auf 2 gesetzt, Erledigt wird auf 5 gesetzt und Abgebrochen wird automatisch auf 6 gesetzt.

Zeichenfolgenaufzählungen

String-Enums sind ein weiterer Enumerationstyp, bei dem jedes Mitglied mit einem String-Literal initialisiert wird, was sie besser lesbar und einfacher zu debuggen macht.

Einfaches String-Enum-Beispiel

Unten sehen Sie ein Beispiel für eine Zeichenfolgenaufzählung:

enum Direction {
  Up = "UP",
  Down = "DOWN",
  Left = "LEFT",
  Right = "RIGHT"
}

let move: Direction = Direction.Left;
console.log(move); // Output: "LEFT"

In diesem Beispiel wird jedes Enumerationselement mit einem Zeichenfolgenwert initialisiert. Im Gegensatz zu numerischen Enumerationen haben Zeichenfolgen-Enumerationen keine automatisch inkrementierten Werte.

Heterogene Enumerationen

Heterogene Enumerationen sind Enumerationen, die sowohl Zeichenfolgen als auch numerische Elemente enthalten. Obwohl es möglich ist, sie zu definieren, wird dies im Allgemeinen nicht empfohlen, da es zu Verwirrung und Fehlern im Code führen kann.

Beispiel für heterogenes Enumeration

Hier ist ein Beispiel für eine heterogene Aufzählung:

enum MixedEnum {
  Yes = "YES",
  No = 0,
  Maybe = 1
}

console.log(MixedEnum.Yes); // Output: "YES"
console.log(MixedEnum.No); // Output: 0

In diesem Beispiel enthält MixedEnum sowohl Zeichenfolgen als auch numerische Werte. Verwenden Sie solche Enumerationen mit Vorsicht, da sie zu Verwirrung führen können.

Enum-Anwendungsfälle

Enumerationen sind in zahlreichen Szenarien hilfreich:

  • Darstellung einer Reihe verwandter Konstanten wie Richtungen (oben, unten, links, rechts).
  • Definieren von Zuständen in einer Zustandsmaschine (Neu, In Bearbeitung, Erledigt, Abgebrochen).
  • Verwenden Sie sie in Switch-Case-Anweisungen zur besseren Lesbarkeit.

Enumeration in einem Switch-Case-Beispiel

Die Verwendung von Enumerationen in einer Switch-Case-Anweisung verbessert die Lesbarkeit des Codes und erleichtert die Verwaltung von Zuständen.

enum Status {
  New,
  InProgress,
  Done,
  Cancelled
}

function getStatusMessage(status: Status): string {
  switch (status) {
    case Status.New:
      return "The task is new.";
    case Status.InProgress:
      return "The task is in progress.";
    case Status.Done:
      return "The task is completed.";
    case Status.Cancelled:
      return "The task is cancelled.";
    default:
      return "Unknown status.";
  }
}

console.log(getStatusMessage(Status.InProgress)); // Output: "The task is in progress."

In diesem Beispiel ist die Switch-Case-Anweisung dank der Verwendung von Enums besser lesbar und weniger fehleranfällig.

Abschluss

Enums in TypeScript bieten eine leistungsstarke Möglichkeit, eine Reihe benannter Konstanten zu definieren und so die Lesbarkeit und Typsicherheit des Codes zu verbessern. Durch die Verwendung numerischer, Zeichenfolgen- oder sogar heterogener Enums können Sie Ihren Code besser verwalten und organisieren. Mit dieser Schritt-für-Schritt-Anleitung sollten Sie nun mit der Verwendung von Enums in TypeScript vertraut sein, um Ihren Code übersichtlicher und wartungsfreundlicher zu gestalten.