我有一个枚举:
export enum DistanceMeasure {
Miles, Kilometers
}
在用户对象中使用:
export class User {
... some stuff
MaxTravelDistance: number;
DistanceMeasure: DistanceMeasure;
MaxTravelTime: TimeSpan;
... some more stuff
}
所以服务器上的信息是0(零)或1,表示距离测量,这很好。
但我需要展示一下绳子,例如“英里”。
在My(Angular/Ionic)应用程序中,输出
console.log(user.DistanceMeasure);
是“0”(零)。
不过,我读到要提取枚举字符串,应该将其用作索引。
如果我这样做了:
console.log(user.DistanceMeasure[0]);
它会以未定义的形式返回。
为什么?因为user.distancemeasure是distancemeasure类型?
它不再是枚举吗?
谢谢。
最佳答案
应该是DistanceMeasure[user.DistanceMeasure]
,如下片段所示:
enum DistanceMeasure {
Miles, Kilometers
}
class User {
DistanceMeasure: DistanceMeasure;
}
const user = new User();
user.DistanceMeasure = 0;
console.log(DistanceMeasure[user.DistanceMeasure]); // Miles
造成这种混乱的一个重要原因是,您没有遵循命名约定,因此最终会得到与枚举同名的属性。