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

MySQL wählt den passenden Datentyp für die ID

Inhaltsverzeichnis Zusammenfassung der Distribute...

So installieren Sie MySQL 5.7 aus dem Quellcode in einer CentOS 7-Umgebung

Dieser Artikel beschreibt, wie MySQL 5.7 aus dem ...

So implementieren Sie Polygonbrechung in Echtzeit mit Threejs

Inhaltsverzeichnis Vorwort Schritt 1: Aufbau und ...

Analyse von Context-Anwendungsszenarien in React

Kontextdefinition und Zweck Der Kontext bietet ei...

So legen Sie die Position des Blockelements in der Mitte des Fensters fest

So legen Sie die Position des Blockelements in de...

Util-Modul im node.js-Tutorial-Beispiel – detaillierte Erklärung

Inhaltsverzeichnis Ausgehend von der Typbeurteilu...

Einführung in die grundlegenden TypeScript-Typen

Inhaltsverzeichnis 1. Grundtypen 2. Objekttyp 2.1...

Tutorial zur Installation und Konfiguration von MySQL 5.7 unter CentOS7 (YUM)

Installationsumgebung: CentOS7 64-Bit, MySQL5.7 1...

Grafisches Tutorial zur Installation und Konfiguration von MySQL 5.7.17 winx64

Windows-Installation mysql-5.7.17-winx64.zip Meth...

10 zu wenig genutzte oder missverstandene HTML-Tags

Hier sind 10 HTML-Tags, die zu wenig verwendet od...