在Angular2中,我从服务器接收数据作为JSON对象。其中一个字段是资源类型。可以是图像,视频或音频。枚举看起来像:
export enum MediaType {
image,
video,
audio
}
但是,当我尝试将响应转换为MediaType枚举时:
this.type = MediaType[data["type"]];
我收到了一个错误:
error TS2322: Type 'string' is not assignable to type 'MediaType'.
有什么想法吗?
答案 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