Angular2将响应JSON转换为Typescript枚举

时间:2016-02-01 16:42:15

标签: typescript angular

在Angular2中,我从服务器接收数据作为JSON对象。其中一个字段是资源类型。可以是图像,视频或音频。枚举看起来像:

export enum MediaType {
  image,
  video,
  audio
}

但是,当我尝试将响应转换为MediaType枚举时:

this.type = MediaType[data["type"]];

我收到了一个错误:

error TS2322: Type 'string' is not assignable to type 'MediaType'.

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

数据['type']是JSON响应的一部分,包含MediaType吗?如果是这样,它可以像这样投射:

this.type = <MediaType> data["type"];

答案 1 :(得分:1)

您的数据[&#34;类型&#34;]应该是数字,0,1或2 ......

考虑一下:

enum MediaType {
 image,
 video,
 audio
}
let type: MediaType;
type = MediaType[0] // image
type = MediaType[1] // video
type = MediaType[2] // audio