enum Week{
MON,
TUE,
WED,
THU,
FRI,
STA,
SUN
}
枚举类型的数据的值默认是从0开始,依次增加1的,输出看看:
我们也可以直接修改每个变量对应的数值
enum Week{
MON,
TUE,
WED = 4,
THU,
FRI = 5,
STA,
SUN
}
再看看输出的值
可以知道枚举中每个变量的值是根据前一个变量的数值+1得到的结果。
我们也可以通过Week[index]拿到数值对应的字符
可以看看这是如何实现的:
上面的枚举代码对应的js代码如下
"use strict";
var Week;
(function (Week) {
Week[Week["MON"] = 0] = "MON";
Week[Week["TUE"] = 1] = "TUE";
Week[Week["WED"] = 4] = "WED";
Week[Week["THU"] = 5] = "THU";
Week[Week["FRI"] = 5] = "FRI";
Week[Week["STA"] = 6] = "STA";
Week[Week["SUN"] = 7] = "SUN";
})(Week || (Week = {}));
1.先定义了一个Week的变量。
2.准备了一个自执行函数将Week作为参数,如果Week没有值则Week的默认值设置为{}
3.Week[Week["MON“] = 0] = "MON":表示先给Week对象添加一个属性"MON",对应的值为0,然后再给Week添加一个属性0,对应的值为"MON",这一步过后Week就长这样了=>{
"MON":0,
"0":"MON"
}
这就是为什么我们可以通过Week.MON拿到MON对应的值,也可以通过MON[0]拿到对应的值"MON",后面的步骤跟3是一样的。
如果现在我们输出Week[5],结果会是THU还是FRI?
正确答案是FRI
我们可以看看最后Week长成什么样子了
在进行赋值的时候,先进行的Week[5] = "THU",然后又进行的Week[5] = "FRI",相当于后面一步把前面一步的属性值给覆盖了。
这就是TS中枚举类型,一般后台返回的关于性别的数据会是这种类型。