TypeScript-Aufzählungstyp

TypeScript-Aufzählungstyp

1. Übersicht

Ein Aufzählungstyp ist ein Name, der einer Menge von Werten zugewiesen wird.

enum ist in C++ und Java üblich. TypeScript fügt enum auch basierend auf dem ursprünglichen JavaScript Typ hinzu.

Wenn wir beispielsweise eine Reihe von Rollen definieren und diese durch Zahlen darstellen müssen, können wir den folgenden Code verwenden, um sie zu finden:

Aufzählungsrolle {
    STUDENT,
    LEHRER,
    VERWALTER
}


Im obigen Code definieren wir die Rolle als Aufzählungstyp, der drei Werte enthält. TypeScript weist jedem Wert automatisch Seriennummern zu, die standardmäßig bei 0 beginnen, und ihre Werte sind 0 1 2.

Natürlich können wir auch jeden Wert individuell anpassen. Wenn nicht alle definiert sind, werden die nachfolgenden Werte entsprechend den vorherigen Werten erhöht.

Der Beispielcode lautet wie folgt:

Aufzählung Rolle1 {
    Schüler = 1,
    // Die nächsten beiden Werte sind 2 bzw. 3
    Lehrer,
    Administrator,
}
Aufzählung Rolle2 {
    // Jeder Name hat einen angegebenen Wert Student = 1,
    Lehrer = 3,
    Administrator = 6,
}

2. Digitale Aufzählung

Bei dem oben vorgestellten Beispiel handelt es sich um einen numerischen Aufzählungstyp. Es gibt jedoch noch einen weiteren Punkt zu beachten: Wenn ein Feld einen konstanten oder berechneten Wert verwendet, müssen wir den Anfangswert unmittelbar nach dem Feld festlegen, da sonst eine Ausnahme ausgelöst wird.

Der Beispielcode lautet wie folgt:

;(Funktion () {
  // Definieren Sie eine Funktion const getValue: () => number = (): number => {
    Rückgabe 0
  }

  Aufzählung Rolle1 {
    Student = getValue(),
    // Lehrer, // Fehler. Enumerationsmitglieder müssen einen Initialisierungsausdruck haben.
    // admin, // Fehler Enumerationsmitglieder müssen einen Initialisierungsausdruck haben.
  }
  const TEACHER_ROLE: Zahl = 3
  // Jeder Name hat einen angegebenen Wert enum role2 {
    Student,
    Lehrer = LEHRERROLLE,
    // admin, // Fehler Enumerationsmitglieder müssen einen Initialisierungsausdruck haben.
  }
})()

2.1 Rückwärtszuordnung

Bei der sogenannten umgekehrten Zuordnung können Sie über key auf den value und über den Wert auf den Schlüssel zugreifen.

Wir können jeden spezifischen Wert über .name oder ['name'] abrufen, oder wir können den jedem Wert entsprechenden Namen über [Wert] abrufen.

Der Beispielcode lautet wie folgt:

Aufzählungsrolle {
    Student,
    Lehrer,
    Administrator,
}
console.log(Rolle.admin) // 2
console.log(Rolle['Lehrer']) //1
console.log(Rolle[0]) //'Student'

Tatsächlich ist der Aufzählungstyp in TypeScript nach der Kompilierung in JavaScript-Code ein Objekt. Lassen Sie uns den obigen Aufzählungstyp kompilieren.

Der kompilierte Code lautet wie folgt:

"streng verwenden";
var Rolle;
(Funktion (Rolle) {
    Rolle [Rolle ["Student"] = 0] = "Student";
    Rolle [Rolle ["Lehrer"] = 1] = "Lehrer";
    Rolle [Rolle ["Administrator"] = 2] = "Administrator";
})(Rolle || (Rolle = {}));


Dies ist möglicherweise leichter zu verstehen. Tatsächlich werden dem Rollenobjekt Werte über eine selbstanpassende Funktion zugewiesen. Nach der Zuweisung sieht es wie folgt aus:

var Rolle = {
    "Schüler": 0,
    "Lehrer": 1,
    "Administrator" : 2, 
    0: "Schüler", 
    1: "Lehrer", 
    2: "Administrator", 
} 


Es ist erwähnenswert, dass die umgekehrte Zuordnung nur in numerischen Aufzählungen unterstützt wird, nicht in den in Version 2.4 hinzugefügten Zeichenfolgenaufzählungen.

3. Zeichenfolgenaufzählung

Die sogenannte Zeichenfolgenaufzählung bedeutet, dass der Wert jedes Felds in der Aufzählung eine Zeichenfolge oder andere Felder in der Aufzählung sein muss.

Der Beispielcode lautet wie folgt:

enum Person {
  Name = 'Eine Schüssel Zhou',
  Hobby = "Programmieren",
  //Setze das Feld in der Aufzählung auf den Wert myName = name,
}
console.log(Person.name, Person.myName) // Eine Schüssel für eine Woche

4. Konstante Aufzählung

Nachdem wir eine normale Aufzählung definiert haben, wird nach der Kompilierung in JavaScript -Code ein entsprechendes Objekt erstellt. Wenn eine Aufzählung verwendet wird, erhöht dies die Lesbarkeit des Programms und das kompilierte Objekt wird nicht benötigt. const Aufzählungen wurden in TypeScript1.4 hinzugefügt.

Die const Enumeration wird in eine vollständig eingebettete Enumeration übersetzt. Die sogenannte vollständig eingebettete Enumeration bedeutet, dass nach der Kompilierung kein entsprechendes Objekt vorhanden ist. Es wird lediglich der entsprechende Wert aus der Enumeration abgerufen und dann ersetzt. Um const -Aufzählung zu definieren, fügen Sie einfach das Schlüsselwort const vor der normalen Aufzählung hinzu.

Der Beispielcode lautet wie folgt:

const enum Rolle {
    Student,
    Lehrer,
    Administrator,
}
let admin = Rolle.admin

Der obige Code wird wie folgt kompiliert:

lass admin = 2 /* admin */;


5. Zusammenfassung

In diesem Artikel werden zwei grundlegende Aufzählungstypen vorgestellt: numerische Aufzählung und Zeichenfolgenaufzählung. Die Array-Aufzählung verfügt außerdem über ein Konzept der Reflexionszuordnung, was bedeutet, dass Sie über den Schlüssel auf den Wert und über den value Schlüssel zugreifen können. Schließlich haben wir auch die const-Aufzählung eingeführt, was bedeutet, dass das sogenannte Aufzählungsobjekt nach der Kompilierung nicht generiert wird.

Dies ist das Ende dieses Artikels über TypeScript -Aufzählungstypen. Weitere verwandte TypeScript-Aufzählungsinhalte finden Sie in den vorherigen Artikeln von 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:
  • Beispielcode mit Typescript in Vue
  • Verstehen Sie Funktionen und Klassen in TypeScript?
  • Verstehen Sie Schnittstellen und Generika in TypeScript?
  • Einführung in die grundlegenden TypeScript-Typen
  • Erfahren Sie in einem Artikel mehr über TypeScript-Datentypen
  • Detaillierte Erklärung zur Verwendung von TypeScript-Typanmerkungen

<<:  Implementierung einer zeitgesteuerten MySQL-Datenbanksicherung (vollständige Datenbanksicherung)

>>:  Lassen Sie IE6, IE7, IE8 CSS3-abgerundete Ecken und Schattenstile unterstützen

Artikel empfehlen

Die Vue-Konfigurationsdatei generiert automatisch Routing- und Menüinstanzcode

Inhaltsverzeichnis Vorne geschrieben router.json ...

Vor- und Nachteile des Tabellenlayouts und warum es nicht empfohlen wird

Nachteile von Tabellen 1. Tabellen nehmen mehr Byt...

Erläuterung der Ausführungspriorität von mySQL-Schlüsselwörtern

Wie unten dargestellt: aus Tabelle wobei Bedingun...

So stellen Sie DoNetCore mit Nginx in der Alibaba Cloud bereit

Grundlegende Umgebungskonfiguration Bitte kaufen ...

Einige Frontend-Grundlagen (HTML, CSS) aus der Praxis

1. Die Div-CSS-Maushandform ist Cursor:Zeiger; 2. ...

Designbeispiele für Dropdown-Menüs und Schiebemenüs

Ich habe viele Websites gefunden, die Dropdown- od...

Umfassendes Verständnis von HTML-Formularelementen

Wie unten dargestellt: XML/HTML-CodeInhalt in die...

25 neue nützliche Icon-Sets zum Download im Ausland

1. E-Commerce-Symbole 2. Symbol Süßigkeiten 2 3. ...

So verwenden Sie die JSX-Syntax richtig in Vue

Inhaltsverzeichnis Vorwort Virtueller DOM Was ist...

Vorgehensweise, wenn die Online-MySQL-Auto-Increment-ID erschöpft ist

Inhaltsverzeichnis Tabellendefinition - automatis...

Tägliche Studiennotizen im HTML-Designmuster

Studiennotizen zu HTML-Entwurfsmustern Diese Woch...