将int转换为Typescript中的枚举字符串 [英] Cast int to enum strings in Typescript

查看:344
本文介绍了将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

这篇关于将int转换为Typescript中的枚举字符串的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆