大家好,这是一个更文挑战。这是我参与8月更文挑战的第8天,活动详情查看:8月更文挑战
ts为js引入了一个新的概念Enums,我们一起看看怎么使用的吧!!
Enums:全称Enumerations
用来定义一些带名字的常量。 使用枚举可以清晰地表达意图或创建一组有区别的用例。 TypeScript支持数字的和基于字符串的枚举。
注意: ts支持数字和字符串的枚举
定义enums变量: 以enums关键字开头,变量名(首字母大写)
enum Pet {
Dog,
Cat,
Goldfish
}
现在,默认的Dog的值为0,Cat的值为1,...以此类推, 默认值是以自增长的
1. 现在要是给Dog一个默认值,那后面的值会是什么呢?
enum Pet {
Dog=4,
Cat,
Goldfish
}
现在 Dog的值为4,Cat的值为5,...以自增长的方式给后面的赋值
2. 要是不想让他们的值是自增长的呢? 可以给每个赋一个值
enum Pet {
Dog=4,
Cat=2,
Goldfish=34
}
现在 Dog的值为4,Cat的值为2,Goldfish的值为34,都为数字类型
3. Enum的值也可以是都是字符串类型
enum Pet {
Dog="hahah",
Cat=“lalal”,
Goldfish=“enenen”
}
现在 Dog的值为hahah,Cat的值为lalal,Goldfish的值为enenen,都为字符串类型
4. Enum的值可以字符串和数字混合用吗?理论上可以,但是不建议
enum Pet {
Dog="hahah",
Cat=44,
Goldfish=“enenen”
}
上面这种做法不建议
4. Enum的值还可以是函数,但是只有一个函数的时候要放在最后一个,否则会出错
注意事项: 函数要有
返回值
getName(){
return 22
}
// 下面这个是错❌的
enum Pet {
Dog=getName(),
Cat,
Goldfish
}
// 下面这个是对的
enum Pet {
Dog,
Cat,
Goldfish=getName()
}
现在,默认的Dog的值为0,Cat的值为1,Goldfish的值为22
5. enum可以计算
enum Animal {
Head,
Eye,
Leg
}
enum People {
Head: Animal.Head,
Eye:1+1,
Leg:2*2,
Mouth:Head
}
Animal里面的值我们都知道分别是:Head的值为0,Eye的值为1,Leg的值为2,那People的值分别是什么呢?Head的值为0,Eye的值为2,Leg的值为4,Mouth的值为0
总结
- 为什么使用enum?
Enums使得代码更加语义话,能够被更好的维护
- 什么时候使用?
变量的值在一个固定的范围区间内,比如:红绿灯,只有3种。年级,1-9年级。键盘上的上下左右,只有4个按键...,诸如此类的,有固定范围的都可以定义为enum类型
希望各位看官喜欢这篇关于ts的enums入门的文章!!!