Actualizar :
Como señaló @ iX3, Typecript 2.4 tiene soporte para cadenas de enumeración.
Ver: Crear una enumeración con valores de cadena en Typecript
Respuesta original:
Para los valores de miembro de cadena, TypeScript solo permite números como valores de miembro de enumeración. Pero hay algunas soluciones / trucos que puede implementar;
Solución 1:
copiado de: https://blog.rsuter.com/how-to-implement-an-enum-with-string-values-in-typescript/
Hay una solución simple: simplemente transmita la cadena literal a cualquiera antes de asignar:
export enum Language {
English = <any>"English",
German = <any>"German",
French = <any>"French",
Italian = <any>"Italian"
}
solución 2:
copiado de: https://basarat.gitbooks.io/typescript/content/docs/types/literal-types.html
Puede utilizar un literal de cadena como tipo. Por ejemplo:
let foo: 'Hello';
Aquí hemos creado una variable llamada foo que solo permitirá que se le asigne el valor literal 'Hola'. Esto se demuestra a continuación:
let foo: 'Hello';
foo = 'Bar'; // Error: "Bar" is not assignable to type "Hello"
No son muy útiles por sí solos, pero se pueden combinar en una unión de tipos para crear una abstracción poderosa (y útil), por ejemplo:
type CardinalDirection =
"North"
| "East"
| "South"
| "West";
function move(distance: number, direction: CardinalDirection) {
// ...
}
move(1,"North"); // Okay
move(1,"Nurth"); // Error!