我从RESTful服务获得以下数据:
[
{
"id": 42,
"type": 0,
"name": "Piety was here",
"description": "Bacon is tasty, tofu not, ain't nobody like me, cause i'm hot...",
}...
我正在使用这个类进行映射:
export enum Type {
Info,
Warning,
Error,
Fatal,
}
export class Message{
public id: number;
public type: Type:
public name: string;
public description: string;
}
但是当我在Angular2中访问'type'时,我只得到一个int值。但是我想获得一个字符串值。
e.g:
'message.type=0'
{{message.type}} => should be Info
'message.type=1'
{{message.type}} => should be Warning
答案 0 :(得分:32)
TypeScript中的枚举是运行时的数字,因此message.type
将为0
,1
,2
或3
。
要获取字符串值,您需要将该数字作为索引传递给枚举:
Type[0] // "Info"
因此,在您的示例中,您需要执行此操作:
Type[message.type] // "Info" when message.type is 0
答案 1 :(得分:26)
TypeScript中的枚举是运行时的对象,对于所有可能的值,这些对象具有来自int -> string
和string -> int
的属性。
要访问您需要调用的字符串值:
Type[0] // "Info"
确保您将正确的类型传递到属性访问器中,因为链式调用可能导致以下结果:
Type[Type.Info] // "Info"
Type[Type[Type.Info]] // 0
Type["Info"] // 0
Type[0] // "Info"
答案 2 :(得分:1)
我想用
{{message.type}}
您只需获取映射值而不是枚举值。 请尝试以下代码。
{{TYPE[message.type]}}