首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Angular: HTTPClient -嵌套枚举的转换

Angular: HTTPClient -嵌套枚举的转换
EN

Stack Overflow用户
提问于 2020-10-20 17:19:14
回答 1查看 221关注 0票数 0

我有StructureInterface喜欢

代码语言:javascript
复制
export interface StructureInterface {
  items: Array<string>;
  status: VersionStatus;
}
export enum VersionStatus {
  NEW, OLD, CHANGED
}

当我发送像这样的请求时

代码语言:javascript
复制
this.http.get<StructureInterface>(`myURL`);

status始终被解释为string,而不是枚举类型。这会对比较和检查产生严重的后果。

如何将status作为枚举和string获取

EN

回答 1

Stack Overflow用户

发布于 2020-10-20 19:28:22

一个人需要手动将字符串转换为枚举,由于Typescript有点挑剔,我找到了TS3.9 (?)

代码语言:javascript
复制
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作为字符串数组中的一个字段来请求enum的值,所以它被作为id发送,即1而不是OLD

因此,我决定使用普通的string,因为这节省了很多时间:-/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64442165

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档