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 clase:
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, solo obtengo un valor int. Pero me gustaría obtener un valor de cadena.
p.ej:
'message.type=0' {{message.type}} => should be Info 'message.type=1' {{message.type}} => should be WarningLas enumeraciones en TypeScript son números en tiempo de ejecución, por lo que message.type será 0 , 1 , 2 o 3 .
Para obtener el valor de la cadena, debe pasar ese número a la enumeración como un índice:
Type[0] // "Info"Entonces, en tu ejemplo, necesitarás hacer esto:
Type[message.type] // "Info" when message.type is 0Las enumeraciones en TypeScript son objetos en tiempo de ejecución que tienen propiedades que van desde int -> string y desde string -> int para todos los valores posibles.
Para acceder al valor de la cadena, deberá llamar a:
Type[0] // "Info"Sin embargo, asegúrese de pasar el tipo correcto al descriptor de acceso de la 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"pienso con
{{message.type}}solo obtiene el valor asignado y no la enumeración. Intente seguir el código.
{{TYPE[message.type]}}