# 基本类型约束

> TS是一个可选的静态的类型系统

# 如何进行类型约束  

– 仅需要在 变量、函数的参数、函数的返回值 位置加上 “`:类型“`
– ts在很多场景中可以完成类型推导
– any: 表示任意类型,对该类型,ts不进行类型检查

> 小技巧,如何区分数字字符串和数字,关键看怎么读?  
> 如果安装数字的方式朗读,则为数字;否则,为字符串。

# 源代码和编译结果的差异

编译结果中没有类型约束信息

# 基本类型

  • number: 数字
  • string: 字符串
  • boolean: 布尔值
  • 数组 :number[] (数字类型的数组)
  • object: 对象
  • null 和 underfined


null 和 undefined是所有其他类型的子类型,他们可以赋值给其他类型的。
通过添加“`strictNullChecks:true“`,可以获得更严格的空类型检查,null 和 undefined 只能赋值给自身。

# 其他常用类型

– 联合类型:多种类型任选其一  
> 配合类型保护进行判断  
> 类型保护:当对某个变量进行类型判断之后,在判断的语句块中便可以确定它的确切类型,typeof可以触发类型保护。

– void类型: 通常用于约束函数的返回值,表示该函数没有任何返回

– never类型:通常用于约束函数的返回值,表示该函数永远不会结束。

– 字面量类型: 使用一个值进行约束

– 元祖类型(Tuple): 一个固定长度的数组,并且数组中每一项的类型确定

– any类型:any类型可以绕过类型检查,因此,any类型的数据可以赋值给任意类型。

其他内容