大家好,这是一个更文挑战。这是我参与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入门的文章!!!