TypeScript中any、unknown、void、never类型讲解
1. any2. unknown3. void4. never1. any
any: 表示任意类型都可以,开发中应尽量避免使用
let app:any = document.getElementById('box')
2. unknown
unknown:一般来说,这个类型并不是开发者手写的,是网络传来的,需要配和断言使用(在使用的时候需要明确这个变量的类型,可以多次指定类型)
type A = {name:string}type B = {age:number}// 模拟ajax传递过来的数据let c: unknown = JSON.parse("{'name':"Tom"}") let var1 = (c as A).namelet var2 = (c as B).age
3. void
void: 表示函数没有返回值
实际编码中,其实可以 “return null” 或者 “return undefined” ,但是没有意义,应该是语法上的兼容而已
let print: () => void = function() {console.log('没有返回值的函数')}function test(): void {// do something}
4. never
never:表示不存在的值的类型
开发中使用较少,一般用于抛出异常、无限循环的函数返回类型出现该类型的时候,注意检查代码是否有问题
eg1:
type Code = 1|2|3|undefinedlet dir:Code // 表示dir的取值只能是”1,2,3,undefined“ 四者之一switch(dir){case 1:break;case 2:break;case 3:break;case undefined:break;default:console.log('如果进入该分支,表示dir的值不在”1,2,3,undefined“中, 即为never类型')}
语法:
function test():never {while() {// do something }}function test2():never {// do somethingthrow new Error('出错了!!!')}