如何解决Angular:HTTPClient-嵌套枚举的转换
我有play_restart
喜欢
idle_streams
当我发送类似请求
时StructureInterface
export interface StructureInterface {
items: Array<string>;
status: VersionStatus;
}
export enum VersionStatus {
NEW,OLD,CHANGED
}
始终被解释为this.http.get<StructureInterface>(`myURL`);
,而不是枚举类型。这会带来比较和检查的服务器后果。
如何获取status
作为枚举和string
?
解决方法
需要手动将字符串转换为枚举,并且由于Typescript有点挑剔,所以我找到了TS3.9(?)解决方案
this.http.get<StructureInterface>(`myURL`).pipe(
map((item:StructureInterface) => {
item.status = VersionStatus[item.status as unknown as keyof typeof VersionStatus];
return item;
}));
所以,这是手动转换,不会自动完成:-/
更新
尽管我成功进行了转换,但是在发送enum
方面还是失败了。由于Angular将enum
用作HTTP请求的字符串数组中的字段,因此enum
的值将作为id发送,即1
而不是OLD
。 / p>
因此,我决定使用普通的string
,因为这样可以节省很多时间:-/
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。