Atualização :
Conforme observado por @ iX3, o Typescript 2.4 tem suporte para seqüências de caracteres enum.
Consulte: Criar uma enumeração com valores de sequência em TypeScript
Resposta original:
Para valores de membro de String, o TypeScript permite apenas números como valores de membro de enumeração. Mas existem algumas soluções / hacks que você pode implementar;
Solução 1:
copiado de: https://blog.rsuter.com/how-to-implement-an-enum-with-string-values-in-typescript/
Existe uma solução simples: basta converter a string literal em qualquer uma antes de atribuir:
export enum Language {
English = <any>"English",
German = <any>"German",
French = <any>"French",
Italian = <any>"Italian"
}
solução 2:
copiado de: https://basarat.gitbooks.io/typescript/content/docs/types/literal-types.html
Você pode usar uma string literal como um tipo. Por exemplo:
let foo: 'Hello';
Aqui, criamos uma variável chamada foo que permitirá apenas que o valor literal 'Hello' seja atribuído a ela. Isso é demonstrado abaixo:
let foo: 'Hello';
foo = 'Bar'; // Error: "Bar" is not assignable to type "Hello"
Eles não são muito úteis por si só, mas podem ser combinados em uma união de tipos para criar uma abstração poderosa (e útil), por exemplo:
type CardinalDirection =
"North"
| "East"
| "South"
| "West";
function move(distance: number, direction: CardinalDirection) {
// ...
}
move(1,"North"); // Okay
move(1,"Nurth"); // Error!