Verständnis und Anwendungsszenarien von Enumerationstypen in TypeScript

Verständnis und Anwendungsszenarien von Enumerationstypen in TypeScript

1. Was ist

Eine Aufzählung ist eine Menge benannter ganzzahliger Konstanten. Sie wird verwendet, um eine Menge benannter Konstanten zu deklarieren. Wenn eine Variable mehrere mögliche Werte hat, kann sie als Aufzählungstyp definiert werden.

Einfach ausgedrückt ist eine Aufzählung die Menge aller möglichen Werte eines Objekts.

Es ist auch im täglichen Leben sehr üblich. Beispielsweise können SONNTAG, MONTAG, DIENSTAG, MITTWOCH, DONNERSTAG, FREITAG, SAMSTAG, die den Wochentag darstellen, als Aufzählung betrachtet werden.

Aufzählungen werden ähnlich wie Strukturen und Vereinigungen deklariert und haben folgende Form:

enum Aufzählungsname{
Bezeichner ①[=Integer-Konstante],
Bezeichner②[=Integer-Konstante],
...
Bezeichner N[=Integer-Konstante],
}Aufzählungsvariable;

2. Verwendung

Aufzählungen werden mit dem Schlüsselwort enum im folgenden Format definiert:

Aufzählung xxx { ... }

So deklarieren Sie ein Schlüsselwort als Aufzählungstyp:

//D als Aufzählungstyp Direction deklarieren
sei d: Richtung;

Die Typen können unterteilt werden in:

  • Numerische Aufzählung
  • Zeichenfolgenaufzählung
  • Heterogene Aufzählungen

Numerische Aufzählung

Wenn wir einen Aufzählungstyp deklarieren, sind ihm zwar keine Werte zugewiesen, seine Werte sind jedoch tatsächlich der numerische Standardtyp und werden standardmäßig beginnend bei 0 akkumuliert:

enum Richtung {
    Up, // Der Standardwert ist 0
    Runter, // Standardwert ist 1
    Links, // Standardwert ist 2
    Rechts // Der Standardwert ist 3
}

console.log(Richtung.Nach oben === 0); // wahr
console.log(Richtung.Nach unten === 1); // wahr
console.log(Richtung.Links === 2); // wahr
console.log(Richtung.Rechts === 3); // wahr

Wenn wir den ersten Wert zuweisen, werden die nachfolgenden Werte entsprechend dem vorherigen Wert ebenfalls um 1 kumuliert:

enum Richtung {
    Nach oben = 10,
    Runter,
    Links,
    Rechts
}

console.log(Richtung.Nach oben, Richtung.Nach unten, Richtung.Nach links, Richtung.Nach rechts); // 10 11 12 13

Zeichenfolgenaufzählung

Der Wert des Aufzählungstyps kann tatsächlich ein Zeichenfolgentyp sein:

enum Richtung {
    Up = 'Nach oben',
    Down = "Runter",
    Links = "Links",
    Rechts = „Rechts“
}

console.log(Richtung['Rechts'], Richtung.Nach oben); // Rechts nach oben

Wenn eine Variable auf einen String gesetzt ist, müssen den nachfolgenden Feldern ebenfalls Strings zugewiesen werden, andernfalls wird ein Fehler gemeldet:

enum Richtung {
 Nach oben = 'Nach oben',
 Down, // Fehler TS1061: Enumerationselement muss Initialisierer haben
 Links, // Fehler TS1061: Enumerationselement muss Initialisierer haben
 Richtig // Fehler TS1061: Enumerationselement muss Initialisierer haben
}

Heterogene Aufzählungen

Das heißt, Sie kombinieren digitale Aufzählung und Zeichenfolgenaufzählung und verwenden sie zusammen wie folgt:

enum BooleanLikeHeterogeneousEnum {
    Nein = 0,
    Ja = "JA",
}

Normalerweise verwenden wir selten heterogene Aufzählungen

Natur

Ein Aufzählungsfall sieht nun wie folgt aus:

enum Richtung {
    Hoch,
    Runter,
    Links,
    Rechts
}

Nach der Kompilierung sieht das Javascript wie folgt aus:

var Richtung;
(Funktion (Richtung) {
    Richtung[Richtung["Nach oben"] = 0] = "Nach oben";
    Richtung[Richtung["Nach unten"] = 1] = "Nach unten";
    Richtung[Richtung["Links"] = 2] = "Links";
    Richtung[Richtung["Rechts"] = 3] = "Rechts";
})(Richtung || (Richtung = {}));

Wie aus dem obigen Code ersichtlich ist, kann Direction[Direction["Up"] = 0] = "Up" unterteilt werden in

  • Richtung["Nach oben"] = 0
  • Richtung[0] = "Nach oben"

Nachdem Sie den Aufzählungstyp definiert haben, können Sie den entsprechenden Wert wie folgt durch Vorwärts- und Rückwärtszuordnung erhalten:

enum Richtung {
    Hoch,
    Runter,
    Links,
    Rechts
}

console.log(Richtung.Nach oben === 0); // wahr
console.log(Richtung[0]); // Nach oben

Und an mehreren Stellen definierte Aufzählungen können wie folgt zusammengeführt werden:

enum Richtung {
    Up = 'Nach oben',
    Down = "Runter",
    Links = "Links",
    Rechts = „Rechts“
}

enum Richtung {
    Mitte = 1
}

Nach der Kompilierung sieht der JS-Code wie folgt aus:

var Richtung;
(Funktion (Richtung) {
    Richtung["Nach oben"] = "Nach oben";
    Richtung["Nach unten"] = "Nach unten";
    Richtung["Links"] = "Links";
    Direction["Right"] = "Rechts";
})(Richtung || (Richtung = {}));
(Funktion (Richtung) {
    Richtung[Richtung["Mitte"] = 1] = "Mitte";
})(Richtung || (Richtung = {}));

Wie Sie sehen, sind die Eigenschaften des Richtungsobjekts überlagert.

3. Anwendungsszenarien

Nehmen wir ein Beispiel aus dem echten Leben. Die vom Backend zurückgegebenen Felder verwenden 0 - 6, um die entsprechenden Daten zu markieren. Derzeit kann die Aufzählung wie folgt verwendet werden, um die Lesbarkeit des Codes zu verbessern:

Aufzählung Tage {So, Mo, Di, Mi, Do, Fr, Sa};

console.log(Tage["Sonntag"] === 0); // wahr
console.log(Tage["Mon"] === 1); // wahr
console.log(Tage["Di"] === 2); // wahr
console.log(Tage["Sa"] === 6); // wahr

Auch wenn das Backend 0, 1 usw. zurückgibt, können wir dies durch Aufzählung definieren, was die Lesbarkeit des Codes verbessern und die nachfolgende Wartung erleichtern kann.

Verweise

https://zh.wikipedia.org/wiki/%E6%9E%9A%E4%B8%BE

Zusammenfassen

Damit ist dieser Artikel zum Verständnis und den Anwendungsszenarien von Aufzählungstypen in TypeScript abgeschlossen. Weitere relevante Inhalte zu TypeScript-Aufzählungstypen finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • TypeScript-Aufzählungstypen im Detail erklären
  • TypeScript-Aufzählungstyp

<<:  Einführung in die MySQL-Datenbank: Detaillierte Erläuterung der Konfigurationsmethode für mehrere Instanzen

>>:  Einführung in die MySQL-Datenbank: Detaillierte Erläuterung des Datenbanksicherungsvorgangs

Artikel empfehlen

So installieren Sie ROS Noetic in Ubuntu 20.04

Haftungsausschluss: Da das Projekt die Verwendung...

Wie werden Vue-Komponenten analysiert und gerendert?

Vorwort In diesem Artikel wird erklärt, wie Vue-K...

Vertikales und horizontales Aufteilen von MySQL-Tabellen

Vertikale Teilung Vertikale Aufteilung bezieht si...

So konfigurieren Sie Openbox für den Linux-Desktop (empfohlen)

Dieser Artikel ist Teil einer Sonderserie zu den ...

Verwenden Sie Elasticsearch, um Indexdaten regelmäßig zu löschen

1. Manchmal verwenden wir ES Aufgrund begrenzter ...

Beispiele für korrekte Beurteilungsmethoden für Datentypen in JS

Inhaltsverzeichnis Vorwort Kann typeof den Typ ko...

Unterschied zwischen MySQL-Update-Set und und

Inhaltsverzeichnis Problembeschreibung Ursachenan...

Schritte zum Importieren von Millionen von Daten in MySQL mit .Net Core

Inhaltsverzeichnis Vorbereitende Vorbereitung Imp...

Erläuterung der Methode zum Schreiben von SQL-Anweisungen zum Einfügen

Methode 1: INSERT INTO t1(Feld1,Feld2) VALUE(v001...