将 int 转换为 Typescript 中的枚举字符串 [英] Cast int to enum strings in Typescript
本文介绍了将 int 转换为 Typescript 中的枚举字符串的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我从 RESTful 服务获得以下数据:
<预><代码>[{身份证":42,类型":0,"name": "虔诚在这里","description": "培根很好吃,豆腐不好吃,没有人喜欢我,因为我很热……",} ...我正在用这个类映射:
export enum Type {信息,警告,错误,致命的,}导出类消息{公众号:号码;公共类型: 类型:公共名称:字符串;公开说明:字符串;}
但是当我在 Angular2 中访问 'type' 时,我只得到一个 int 值.但我想得到一个字符串值.
例如:
'message.type=0'{{message.type}} =>应该是信息'message.type=1'{{message.type}} =>应该是警告
解决方案
TypeScript 中的枚举在运行时是数字,所以 message.type
将是 0
, 1
、2
或 3
.
要获取字符串值,您需要将该数字作为索引传递给枚举:
Type[0]//"信息"
因此,在您的示例中,您需要这样做:
Type[message.type]//message.type 为 0 时的信息"
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...",
}...
And I'm mapping with this class:
export enum Type {
Info,
Warning,
Error,
Fatal,
}
export class Message{
public id: number;
public type: Type:
public name: string;
public description: string;
}
But when I access 'type' in Angular2 I get only a int value. But I'd like to get a string value.
e.g:
'message.type=0'
{{message.type}} => should be Info
'message.type=1'
{{message.type}} => should be Warning
解决方案
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
这篇关于将 int 转换为 Typescript 中的枚举字符串的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文