如何解决带枚举数组的Typescript奇怪行为
我的打字稿中有一个枚举:
export enum MyEnum{
value1,value2
}
我有一个枚举数组:
let myEnumValues: Array<string | number> = [];
然后我将枚举推入:
myEnumValues.push(MyEnum.value2)
如果打印数组:
console.log(myEnumValues);
// [ 1 ]
如果我遍历数组并打印出来:
for (var myEnumValue in myEnumValues) {
console.log(myEnumValue);
// 0
}
为什么我遍历包含一个项1
的数组,而在我打印它时却是0
吗?
我尝试了许多变体,但总是不同。
我不知道。
解决方法
答案是:
for (var myEnumValue of myEnumValues) {
代替
for (var myEnumValue in myEnumValues) {
在TypeScript中使用enum
时,默认情况下为,这意味着:每个键的值是一个与键的索引相对应的数字。
如果要使用字符串值,则必须为每个键定义一个字符串值:
export enum MyEnum{
value1 = 'value1',value2 = 'value2'
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。