我有StructureInterface喜欢
export interface StructureInterface {
items: Array<string>;
status: VersionStatus;
}
export enum VersionStatus {
NEW, OLD, CHANGED
}当我发送像这样的请求时
this.http.get<StructureInterface>(`myURL`);status始终被解释为string,而不是枚举类型。这会对比较和检查产生严重的后果。
如何将status作为枚举和string获取
发布于 2020-10-20 19:28:22
一个人需要手动将字符串转换为枚举,由于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作为字符串数组中的一个字段来请求enum的值,所以它被作为id发送,即1而不是OLD。
因此,我决定使用普通的string,因为这节省了很多时间:-/
https://stackoverflow.com/questions/64442165
复制相似问题