枚举
// 数字枚举 // 自增值 // enum e { // red, // green, // black // } // console.log(e.red,e.green,e.black); // 0,1,2 // 可以设置默认值,没定义的还是会默认自增 // enum e { // red, // green = 5, // black // } // console.log(e.red,e.green,e.black); // 0,5,6 // 字符串枚举 // enum e { // red = 'red', // // green // 字符串枚举不会自增,这里不定义会报错 // black = 'black' // } // 混合枚举 // enum e { // red = 'red', // // pink, // 字符串后面不可以使用默认 // green = 3, // black // } // 配合interface使用 // enum e { // red = 1 // } // interface i { // x: e.red // } // const obj:i = { // x: e.red // // 也可以直接使用值 // // x: 1 // } // const // const enum falg { // sucess, // false // } // const code:number = 0 // // 因为enum被const定义后会编译成常量, falg.sucess直接为0,没有const时,enum是一个对象,虽然值都是0 // if (code === falg.sucess) { // console.log("%c Line:53 🥑", "color:#ea7e5c"); // } // 反向映射, enum e { red = 123 // red = '123' 值是字符串的时候无法反向映射 } const value:number = e.red let key = e[value] let w = e['red'] // 可以通过值去获取key console.log(value,key,w,e); // 123,red,123,{'123':'red',red:123}