Emitir cadenas int enum en Typescript

Obtengo de un Servicio RESTful los siguientes datos:

[ { "id": 42, "type": 0, "name": "Piety was here", "description": "Bacon is tasty, tofu not, ain't nobody like me, cause i'm hot...", }... 

Y estoy mapeando con esta class:

 export enum Type { Info, Warning, Error, Fatal, } export class Message{ public id: number; public type: Type: public name: string; public description: string; } 

Pero cuando accedo a "tipo" en Angular2 obtengo solo un valor int. Pero me gustaría get un valor de cadena.

p.ej:

 'message.type=0' {{message.type}} => should be Info 'message.type=1' {{message.type}} => should be Warning 

Los enumerados en TypeScript son numbers en time de ejecución, por lo que message.type será 0 , 1 , 2 o 3 .

Para get el valor de la cadena, debe pasar ese número a la enumeración como índice:

 Type[0] // "Info" 

Entonces, en tu ejemplo, necesitarás hacer esto:

 Type[message.type] // "Info" when message.type is 0 

Documentos

Las inputs en TypeScript son objects en time de ejecución que tienen properties que van desde int -> string y from string -> int para todos los valores posibles.

Para acceder al valor de cadena necesitará llamar:

 Type[0] // "Info" 

Sin embargo, asegúrese de estar pasando el tipo correcto al acceso de propiedad porque las llamadas encadenadas pueden dar como resultado lo siguiente:

 Type[Type.Info] // "Info" Type[Type[Type.Info]] // 0 Type["Info"] // 0 Type[0] // "Info" 

Creo con

 {{message.type}} 

solo obtienes el valor mapeado y no el enum. Intenta seguir el código.

 {{TYPE[message.type]}}