Cast int pour énumérer des chaînes dans Typescript
- Je obtenir à partir d'un Service RESTful les données suivantes:
[
{
"id": 42,
"type": 0,
"name": "Piety was here",
"description": "Bacon is tasty, tofu not, ain't nobody like me, cause i'm hot...",
}...
Et je suis cartographie avec cette classe:
export enum Type {
Info,
Warning,
Error,
Fatal,
}
export class Message{
public id: number;
public type: Type:
public name: string;
public description: string;
}
Mais lorsque j'accède à "taper" dans Angular2 j'obtiens seulement une valeur int. Mais j'aimerais avoir une chaîne de la valeur.
e.g:
'message.type=0'
{{message.type}} => should be Info
'message.type=1'
{{message.type}} => should be Warning
source d'informationauteur Franz Peter Tebartz van Elst
Vous devez vous connecter pour publier un commentaire.
Enums en caractères d'imprimerie sont des nombres au moment de l'exécution, de sorte
message.type
sera0
1
2
ou3
.Pour obtenir la valeur de chaîne, vous devez passer ce nombre dans la enum comme un indice:
Donc, dans votre exemple, vous aurez besoin de faire cela:
Docs
Enums en caractères d'imprimerie sont des objets lors de l'exécution, qui ont des propriétés qui vont de
int -> string
et destring -> int
pour toutes les valeurs possibles.Pour accéder à la chaîne de valeur, vous devrez appeler:
Assurez-vous que vous êtes de passage le bon type dans la propriété de l'accesseur, mais parce que enchaînés les appels peuvent entraîner:
Je pense qu'avec
vous venez juste d'obtenir la valeur mappée et pas l'enum.
S'il vous plaît essayer de code suivant.