// 枚举类型提供的一个便利就是可以由枚举的值得到他的名字。例如,数值为2,但是不知道它映射到数组里面指的是哪一个元素,可以去查找看看
enum Color {red=1,blue=2,yellow=3}
let colorName:string = Color[1]
console.log(colorName)// red
console.log(typeof colorName) // string
// 空值
// void类型与any类型相反,它表示没有任何类型。当一个函数没有返回值时,就可以使用void来表示】
function fn():void{
console.log('没有返回值')
}
// 声明一个void类型的变量没有什么大的用处,因为只能为它赋予undefined和null
let unsable:void = null;
// Never
// never 类型表示的是那些用不存在的值的类型;例如,never类型是那些总是会抛出异常或根本就不会有返回值
// 的函数表达式或箭头表达式的返回值类型;变量也可以是never类型,当他们为永不为真的情况下
// 没有类型是never类型的子类型或者说没有其他类型能赋值给never类型,除了它本身,any也不可以赋值给never
// 返回never的函数必须存在无法达到的终点
function error(message:string):never{
throw new Error(message)
}
error("111")
// 推断的返回值类型为never
function fail(){
return error("出错了")
}