ts学习(4)

  1. 枚举
值为数字类型:
enum DayEnum {
    day = 1,
    week,
    month,
    year
}
for (const key in DayEnum) console.log(key)

值为非数字类型
//枚举

enum Animal {
    first='bear',
    second='lion'
}
  1. 枚举和对象有什么区别
  • js里面没有枚举这个类型,所以ts编译为js之后,会发现转为对象类型。
  • 枚举类型不可以被修改(只读类型的对象)
  • 枚举可以进行反向映射,但是只针对数字类型的值。
//反向映射,看一下翻译成js之后的代码
数字类型
(function(DayEnum){
  DayEnum[DayEnum['day']=1]='day';
  DayEnum[DayEnum['week']=2]='week';
  DayEnum[DayEnum['month']=3]='month';
  DayEnum[DayEnum['year']=4]='year';
})({})
//打印一下DayEnum
{
day:1,1:'day'
.....
}

对于非数字类型
(function (Animal) {
    Animal["first"] = "bear";
    Animal["second"] = "lion";
})(Animal || (Animal = {}));

所以值为非数字类型的不能进行反向映射。

你可能感兴趣的:(ts学习(4))