将int转换为Typescript中的枚举字符串
问题描述:
我从RESTful服务获得以下数据:
I get from a RESTful Service the following data:
[
{
"id": 42,
"type": 0,
"name": "Piety was here",
"description": "Bacon is tasty, tofu not, ain't nobody like me, cause i'm hot...",
}...
我是m使用此类映射:
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值。但是我想得到一个字符串值。
But when I access 'type' in Angular2 I get only a int value. But I'd like to get a string value.
例如:
'message.type=0'
{{message.type}} => should be Info
'message.type=1'
{{message.type}} => should be Warning
答
TypeScript中的枚举是运行时的数字,所以 message.type
将 0
, 1
, 2 或 3
。
Enums in TypeScript are numbers at runtime, so message.type
will be 0
, 1
, 2
or 3
.
要获取字符串值,你需要将这个数字作为索引传递给枚举:
To get the string value, you need to pass that number into the enum as an index:
Type[0] // "Info"
因此,在您的示例中,您需要这样做:
So, in your example, you'll need to do this:
Type[message.type] // "Info" when message.type is 0
$ b时输入[message.type] //Info
$ b
Docs