任意类型
any类型
表示任意的类型,没有强制限定是什么的类型
可以对any进行任何操作,而不被检查类型
1 | let anys:any = 123 |
声明时没有指定类型的变量默认为any
1 | let anys; |
如果使用any,就失去了TS类型检测的作用,也没有代码提示,和JS没什么两样了AnyScript
unknown类型
表示不知道的类型,TS3.0引入
与any一样,所有类型都可以被分配给unknown
1 | // unknown 可以定义任何类型的值 |
any和unknown的区别
unknown类型比any类型更加严格,但也更加安全
1 | // 这样写会报错 |
在赋引用类型时也有区别
1 | // 如果是any类型,调用属性和方法不会报错,即使没有这个属性或方法 |
类型级别
- any和unknown都是顶级类型(top type)
- 第二级是Object
- 第三级是Number、String、Boolean这些包装器对象
- 第四级是number、string、boolean这些基本类型
- 第五级是具体的值,例如1、”yajue”、false
- 第六级是never类型
上级类型对下级而言是包含的关系
评论