TypeScript · Junior · Frage 30 von 75
Wie unterscheidet sich enum Color { Red, Green } von type Color = 'red' | 'green'?
- 1Eine Literal-Union erzeugt zur Laufzeit ein Objekt; ein
enumist nur ein Typ - 2Ein
enumerzeugt zur Laufzeit ein Objekt; eine Literal-Union existiert nur in Typen - 3Kein Unterschied: der Compiler erzeugt für beide dasselbe JavaScript
Antwort zeigen
Richtige Antwort: Ein enum erzeugt zur Laufzeit ein Objekt; eine Literal-Union existiert nur in Typen
Erklärung
Ein normales enum kompiliert zu einem JS-Objekt (ein numerisches mit Rückwärtszuordnung). Eine String-Union fügt dem Bundle nichts hinzu und ist mit JSON und APIs kompatibel. Viele Teams bevorzugen Unions oder ein Objekt mit as const. Außerdem sind Enums mit dem Modus erasableSyntaxOnly unverträglich.