ts中的对象类型比较复杂。如果直接给变量指定object,没有什么意义。因为数组,函数,都是对象。
常用的是规定对象里面数据的类型。此时变量和类型对象里里面定义的内容要完全一致。不能多也不能少。
下面age后面的?表示age是可选的。
[key:string]:any 表示key值是一个字符串,value是任意值,并且可有可无。
let a :{
name:string,
age?:number,
[key:string]:any
}
a = {
name:'zhangsan',
time:200
}
定义函数的类型 let fn:(a:number,b:number)=>number
let fn:(a:number,b:number)=>number
fn = (a,b)=>{
return a+b
}
- 定义数组类型,两种方式
-
- let arr : string[]
- let arr:Array
TS种新增的数据类型
-
- 元组:固定长度的数组。语法: let a:[string,string]
- 枚举(enum):就是把所有可能的情况列出来。
// 定义枚举类
enum Gender{
Male = 1,
Female =2
}
let msg:{name:string,gender:Gender} // 第二步,类型的时候填枚举类
msg = {
name:'zhangsan',
gender:Gender.Female // 使用的时候用点语法
}
类型的别名,如果一个变量可以是好几个类型,可以使用类型别名,并且可以复用类型。定义别名的关键词是type
type nameType = string | number | 'zhangsan'
let nameValue :nameType
let nameValue2:nameType