update :
Zoals opgemerkt door @ iX3, Typescript 2.4 heeft ondersteuning voor enum strings.
Zie ook: Maak een enum met string waarden in Typescript
Oorspronkelijke antwoord:
Voor String lid waarden, typoscript laat alleen nummers als enum lid waarden. Maar er zijn een paar oplossingen / hacks die u kunt implementeren;
Oplossing 1:
gekopieerd uit: https://blog.rsuter.com/how-to-implement-an-enum-with-string-values-in-typescript/
Er is een eenvoudige oplossing: Gewoon wierp het letterlijke tekenreeks om eventuele vóór het toewijzen:
export enum Language {
English = <any>"English",
German = <any>"German",
French = <any>"French",
Italian = <any>"Italian"
}
Oplossing 2:
gekopieerd uit: https://basarat.gitbooks.io/typescript/content/docs/types/literal-types.html
U kunt een letterlijke tekenreeks als een type te gebruiken. Bijvoorbeeld:
let foo: 'Hello';
Hier hebben we een variabele met de naam foo dat alleen zal de letterlijke waarde 'Hello' te worden toegewezen aan het creëerde. Dit wordt hieronder aangetoond:
let foo: 'Hello';
foo = 'Bar'; // Error: "Bar" is not assignable to type "Hello"
Ze zijn niet erg nuttig op hun eigen, maar kunnen worden gecombineerd in een soort vakbond om een krachtige (en nuttige) abstractie bijvoorbeeld te maken:
type CardinalDirection =
"North"
| "East"
| "South"
| "West";
function move(distance: number, direction: CardinalDirection) {
// ...
}
move(1,"North"); // Okay
move(1,"Nurth"); // Error!