原始数据类型Primitive

boolean
string
number
null
undefined
symbol //独一无二的值,用于防止对象属性名冲突
另外symbol不可以做运算,可以通过 .toString()Boolean() 进行转换

注意,首字母大写是创建实例,小写是声明类型

类型推论

正常写法 isNum: boolean = true;
推论写法 isNum = true;
当声明定义了值时,会自动推论出该声明的类型

如果
let isNum; isNum = true;
定义式未赋值会推论为any类型(任意类型)

any类型

指任意类型,无赋值为any,则推论为: any

什么时候用any?

  • 第三方库没有提供类型文件时
  • 类型转换遇到困难时
  • 数据结构(json)太复杂时

类型的方法

取决于声明的类型的方法,请参考
[资料] 基本包装对象

联合类型

let seven: string | number;
seven = 7;
seven = ‘seven’;
则可以使用联合类型的共有属性和方法
number 的 .toFixed(0) //报错
string 的 .length //报错
共有方法 .toString() //成功
image.png

类型断言

断定它一定是这个类型
image.png

  • 类型断言可以将一个联合类型的变量,指定为一个更加具体的类型
  • 不能将联合类型断言为不存在的类型 ```typescript let seven: number | string;

(seven as number).toFixed(3); // 类型断言的第一种语法

seven.length; // 类型断言的第二种语法

  1. 双重断言
  2. ```typescript
  3. seven as any as string