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

Schritte zum Bereitstellen eines Docker-Projekts in IDEA

Mittlerweile werden die meisten Projekte auf Dock...

Implementierung einer coolen 3D-Würfeltransformationsanimation in CSS3

Ich liebe das Programmieren, es macht mich glückl...

JS implementiert die zufällige Generierung von Bestätigungscodes

In diesem Artikelbeispiel wird der spezifische JS...

Zusammenfassung des CSS-Zählers und des Inhalts

Die Inhaltseigenschaft wurde bereits in CSS 2.1 e...

Gespeicherte MySQL-Prozeduren und allgemeine Funktionscodeanalyse

Das Konzept der gespeicherten MySQL-Prozedur: Ein...

So beheben Sie den abnormalen Start von mysql5.7.21

Ein Kollege meldete, dass eine MySQL-Instanz aufg...

CocosCreator-Tutorial für den Einstieg: Erstellen Sie Ihr erstes Spiel mit TS

Inhaltsverzeichnis Prämisse TypeScript vs. JavaSc...

Grafisches Tutorial zur Installation und Konfiguration von MySQL 8.0.15

In diesem Artikel werden die Installations- und K...

Detaillierte Erklärung, wo das von Docker abgerufene Image gespeichert ist

20200804Nachtrag: Der Artikel könnte falsch sein....

Beschreiben Sie kurz die MySQL InnoDB-Speicher-Engine

Vorwort: Die Speicher-Engine ist der Kern der Dat...

Zwei Implementierungen des Front-End-Routings von Vue-Router

Inhaltsverzeichnis Modusparameter HashHistorie Ha...

So implementieren Sie das N-Grid-Layout in CSS

Häufige Anwendungsszenarien Die Schnittstellen ak...