#基础类型约束
>ts是一个可选的静态的类型系统
#如何进行类型约束
仅需要在 变量、函数的参数、函数的返回值 位置加上...:类型...
let name :string;
//返回值约束
function sum(a:number,b:number):number{
return a+b
}
let num : number = sum(2,3);
ts在很多场景中可以完成类型推导
any:表示任意类型,对该类型,ts不进行类型检查
小技巧,如何区分数字字符串和数字,关键看怎么读?
>如果按照数字的方式朗读,则为数字;否则为字符串
优秀
#源代码和编译结果的差异
编译结果中没有类型约束信息
-基本类型
-number
-string
-boolean
-array
:number[] //数字类型的数组 ===:Array<number>
-object
:object
Object.values()
-null or undefined 是所有类型的子类型,可以赋值给其他类型
通过添加"strictNullChecks": true,进行约束
#其他常用类型
-联合类型 :多种类型任选其一 eg: let name:string | undefined = undefined;
类型保护:当对某个变量进行类型判断之后,在判断的语句块中便可以确定类型,typeof可以触发基本类型保护
-void类型:通常用于约束函数的返回值,表示该函数没有任何返回
:void
-never类型:通常用于约束函数的返回值,表示该函数永远不可能结束
-字面量类型:使用一个值进行约束
let a :"A" | "B"
let arr:[];//arr永远只能取值为一个空数组
let user:{
name:string
age:number
}
-元祖类型:一个固定长度的数组,并且数组中每一项的类型确定
let tu:[string,number]
-any类型:可以绕过类型检查,一次,any类型的数据可以赋值给任意类型
类型别名
给一个类型取一个别名
type userName = {
name:string
age:number
}