希望老师解释下枚举
来源:2-12 枚举(Enum)
hy_wang
2021-03-26
enum GenderEnum {
'未知' = 0,
'男' = 1,
'女' = 2,
}
const transformGender = (value: GenderEnum) => {
return GenderEnum[value]
}
老师可以稍微解释下这里的代码吗,GenderEnum
作为了类型传入。我不太理解这里是什么意思。老师能稍微解释下吗,枚举可以直接用作值我清楚比如GenderEnum.0 = '未知'
。但是用作类型代表是什么意思,
transformGender(1)
这样的代码也没有报错。
写回答
1回答
-
同学你好 和上个问题对比 你替换了代码 这次没有用 常量枚举,也就是变成了
enum GenderEnum { '未知' = 0, '男' = 1, '女' = 2, }
这种会创建一个双向的数据结构,就像你描述的一样
GenderEnum作为了类型传入,这里是数字枚举,所以它是被当作数字类型的,这样正好对应了你所说的 GenderEnum[0] 如果你 type Test = keyof GenderEnum 查看 Test 的话,发现它会列举出 number 的一系列方法
再次重申,enum 最好别这样用,你就把它看成一些固定值的别称而已,你这个场景使用 对象 处理就完了。
012021-04-03
相似问题