![](https://i-blog.csdnimg.cn/blog_migrate/047d2762e41d5e847999c6741fe43ced.png)
原始类型
string,number,boolean,null,undefined,symbol
ES6 引入了一种新的原始数据类型 Symbol ,表示独一无二的值,最大的用法是用来定义对象的唯一属性名。
![](https://i-blog.csdnimg.cn/blog_migrate/85432ce9cd0be0dca91625b52752690c.png)
object, Object, {}
object:代表的是非原始类型,也就是不能是string,number,boolean,symbol,null,undefined
Object :代表所有拥有 toString、hasOwnProperty 方法的类型,所以所有原始类型、非原始类型都可以赋给 Object,严格模式下不包括null,undefined。
{} :空对象类型和 Object 一样。
![](https://i-blog.csdnimg.cn/blog_migrate/2625b2b85c2100ecc3711fdba1ea6c99.png)
数组类型
数组类型 写法 :「类型 + 方括号」表示法
![](https://i-blog.csdnimg.cn/blog_migrate/8ee7389ab73dbd43224fdf7d51e516aa.png)
字面量类型
字面量不仅可以表示值,还可以表示类型
注意:TypeScript 支持 3 种字面量类型:string字面量类型、number字面量类型、boolean字面量类型
![](https://i-blog.csdnimg.cn/blog_migrate/964573813b62210232a46bf6736d11ab.png)
![](https://i-blog.csdnimg.cn/blog_migrate/26e8a2ed52e3043ce814a8f02ebe65eb.png)
联合类型和交叉类型
联合类型 可以把“|”类比为 JavaScript 中的逻辑或 “||”,只不过前者表示可能的类型。
交叉类型(Intersection Type),它可以把多个类型合并成一个类型,合并后的类型将拥有所有成员类型的特性。使用“&”操作符来声明交叉类型(并集)。
![](https://i-blog.csdnimg.cn/blog_migrate/dc5f34133a7a28601123b72fa0bfaa83.png)
![](https://i-blog.csdnimg.cn/blog_migrate/829feba1dbb1377cfa6c29bff2770bc0.png)
any , unknown
any 指的是一个任意类型,它是官方提供的一个选择性绕过静态类型检测的作弊方式,非常不建议使用。
unknown 用来描述类型并不确定的变量,和any的区别就是会进行类型检测。