/**
* 数字枚举
*/
//声明,自动增长,第一个元素不声明默认值为0
enum Count{
one=1,
two,
three,
four
}
//调用
function add(num:number,count:Count){return num+count}
add(5,Count.one)
/**
* 字符串枚举
*/
enum Word{
one='one',
two='two',
three='three'
}
/**
* 联合枚举 ,枚举中的计算成员和常量成员
* 枚举为常量的情况
* 1 枚举的第一个成员且没有初始化器
* 2 不带有初始化器且前一个枚举是一个数字常量
* 3 枚举成员使用常量表达器初始化,即包含各种运算符或逻辑表达式
*/
enum FileAccess{
//constant
None,
Read = 1<<1,
Write = 2<<2,
ReadWrite = Read | Write,
//computed
G='123'.length
}
/**
* 反向映射
*/
enum E{
A
}
let a=E.A
let nameofa=E[a]
/**
* const 枚举
* 只能使用常量枚举表达式
* 不允许包含计算成员,编译阶段会被删除
*/
const enum Enum{
A=1,
B=A+1
}
/**
* 外部枚举
* 区别于内部枚举
* 正常枚举中没有初始化方法的成员被当作常数成员
* 对于非常数的外部枚举,没有初始化枚举方法时被当作需要计算的
*/
declare enum Enum1{
A=1,
B,
C
}