Ich arbeite an einer Definitionsdatei für die Google Maps-API für TypeScript.
Und ich muss eine Aufzählung wie Typ definieren, z. google.maps.Animation
welches zwei Eigenschaften enthält: BOUNCE
und DROP
.
Wie soll das in TypeScript gemacht werden?
enums
typescript
eNepper
quelle
quelle
Antworten:
TypeScript 0.9+ hat eine Spezifikation für Aufzählungen:
Das letzte Komma ist optional.
quelle
enum
Konstrukt zu diesem Zeitpunkt zu verwenden, da das TypeScript-Team ziemlich deutlich gemacht hat, dass es sich ändern wird - es wird also kaputt gehen.Ab TypeScript 0.9 (derzeit eine Alpha-Version) können Sie die Enum-Definition wie folgt verwenden:
Standardmäßig werden diesen Aufzählungen 0, 1 bzw. 2 zugewiesen. Wenn Sie diese Nummern explizit festlegen möchten, können Sie dies im Rahmen der Enum-Deklaration tun.
Listing 6.2: Aufzählungen mit expliziten Mitgliedern
Beide Beispiele wurden direkt aus TypeScript für JavaScript-Programmierer entfernt .
Beachten Sie, dass dies von der Spezifikation 0.8 abweicht. Die 0.8-Spezifikation sah folgendermaßen aus - sie wurde jedoch als experimentell markiert und wird sich wahrscheinlich ändern. Daher müssen Sie jeden alten Code aktualisieren:
Haftungsausschluss - Dieses 0.8-Beispiel würde in neueren Versionen des TypeScript-Compilers beschädigt.
quelle
Dies ist jetzt Teil der Sprache. Die Dokumentation hierzu finden Sie unter TypeScriptLang.org> Grundtypen> Aufzählung . Ein Auszug aus der Dokumentation zur Verwendung dieser Aufzählungen:
Oder mit manuellen Hintergrundnummern:
Sie können auch zum Enum-Namen zurückkehren, indem Sie beispielsweise verwenden
Color[2]
.Hier ist ein Beispiel, wie das alles zusammen passt:
Dies wird protokollieren:
Zum Zeitpunkt des Schreibens generiert der Typescript-Spielplatz diesen Code:
quelle
Nur ein weiterer Hinweis, dass Sie eine ID / Zeichenfolge mit den folgenden Aufzählungen erstellen können:
quelle
str
und dasid
nutzen?abstract class
es besser, eine Instanziierung zu verhindern, da TypeScript keine Vorstellung von a hatstatic class
?Update :
Wie von @ iX3 erwähnt, unterstützt Typescript 2.4 Enum-Strings.
Siehe: Erstellen Sie eine Aufzählung mit Zeichenfolgenwerten in Typescript
Ursprüngliche Antwort:
Für String-Member-Werte erlaubt TypeScript nur Zahlen als Enum-Member-Werte. Es gibt jedoch einige Lösungen / Hacks, die Sie implementieren können.
Lösung 1:
kopiert von: https://blog.rsuter.com/how-to-implement-an-enum-with-string-values-in-typescript/
Es gibt eine einfache Lösung: Verwandeln Sie das String-Literal einfach in ein beliebiges, bevor Sie Folgendes zuweisen:
Lösung 2:
kopiert von: https://basarat.gitbooks.io/typescript/content/docs/types/literal-types.html
Sie können ein Zeichenfolgenliteral als Typ verwenden. Beispielsweise:
Hier haben wir eine Variable namens foo erstellt, mit der nur der Literalwert 'Hello' zugewiesen werden kann. Dies wird unten gezeigt:
Sie sind für sich genommen nicht sehr nützlich, können aber zu einer Typvereinigung kombiniert werden, um eine leistungsstarke (und nützliche) Abstraktion zu erstellen, z.
quelle
Aufzählungen im Typoskript:
Aufzählungen werden in die Typoskriptsprache eingefügt, um eine Reihe benannter Konstanten zu definieren. Die Verwendung von Aufzählungen kann unser Leben erleichtern. Der Grund dafür ist, dass diese Konstanten oft leichter zu lesen sind als der Wert, den die Aufzählung darstellt.
Eine Aufzählung erstellen:
Dieses Beispiel aus den Typoskript-Dokumenten erklärt sehr gut, wie Aufzählungen funktionieren. Beachten Sie, dass unser erster Aufzählungswert (Up) mit 1 initialisiert wird. Alle folgenden Elemente der Zahlenaufzählung werden dann automatisch von diesem Wert inkrementiert (dh Down = 2, Left = 3, Right = 4). Wenn wir den ersten Wert nicht mit 1 initialisieren würden, würde die Aufzählung bei 0 beginnen und dann automatisch inkrementieren (dh Down = 1, Left = 2, Right = 3).
Verwenden einer Aufzählung:
Wir können auf folgende Weise auf die Werte der Aufzählung zugreifen:
Beachten Sie, dass diese Art und Weise wir viel mehr sind beschreibend in der Art und Weise schreiben wir unseren Code. Aufzählungen hindern uns grundsätzlich daran, magische Zahlen zu verwenden (Zahlen, die eine Entität darstellen, weil der Programmierer ihnen in einem bestimmten Kontext eine Bedeutung gegeben hat). Magische Zahlen sind aus folgenden Gründen schlecht:
quelle