枚举类型:一组有名字的常量集合
//数字枚举
enum role {
a,
b,
c,
d
}
//字符串枚举
enum msg {
success = '好得很',
error = '不咋滴'
}
//异构枚举(混合使用,容易造成混淆,不建议使用)
enum enua {
f,
str = '好的呀奥迪',
}
//枚举成员,枚举成员的值是不能更改的,是一个只读类型
//枚举成员的类型分为两类
//1.const 常量枚举成员会在编译的时候计算出结果,以常量的形式出现在运行时环境
//2.comuted 需要被计算的枚举成员,非常量的表达式,不会在编译阶段进行计算,而会被保留到程序//的执行阶段
enum char {
//const
a, //没有初始值的情况
b = char.a, //对已有枚举成员的引用
c = 1+3, //常量的表达式
//comuted
//comuted后面的枚举成员一定要被赋一个初始值,否则会报错的呢
d = Math.random(),
e = '123'.length,
f(报错)
}
//常量枚举(用const声明的枚举)
//表现:会在编译阶段被移除
//作用:当我们不要一个对象,只需要一个对象的值的时候,就可以使用常量枚举。
//好处:减少我们在编译环境的代码
const enum month{
a,
b,
c
}
let Month = [month.a, month.b, month.c] //编译时,枚举被替换了常量
console.log(Month)
//枚举类型
enum E { a, b} //声明未赋值的类型
enum F { a = 0, b = 1} //声明为都是数字类型
enum G { a = 'aaaa', b = 'bbbbbb' } //声明为都是字符串类型
let e: E = 3
let f: F = 3
let e1: E.a = 3
let e2: E.b = 3
let e3: E.a = 3
//不同枚举类型的值是永远不可以进行比较的
let g1: G = G.b
let g2: G.a = G.a
网友评论