什么是接口
在面向对象语言中,接口时对行为的抽象,而具体如何行动需要由类 classes去实现(implement)。typeScript中的接口是一个非常灵活的概念,除了可以对类的一部分行为进行抽象以外,也常用于对对象的形状进行描述
例如
interface Person{
name:string,
age:number
}
let tom:Person={
name:'家风',
age:18
}
上面列子中,我们定义了一个接口Person,紧接着定义了一个变量tom,他的类型是Person,我们就约束了tom的形状必须与Person保持一致,一般接口的首字母大写
定义的变量必须与接口保持一致,多一个或者少一个都是不允许的
可选属性
当我们不需要完全匹配一个接口形状的时候,我们可以使用可选属性
接口的属性名后加上?表示参数可选
interface Student{
name:String,
age?:number
}
let bob:Student={
name:'张三'
}
任意类型
interface Info {
name:string
age:number,
[prop:string]:any
}
let info:Info={
name:'小朋友',
age:18,
address:'合肥',
school:'合肥工业大学'
}
[prop:string]:any 表示对象可以添加任意类型的任意属性
readonly 只读属性
interface Info {
readonly name:string//定义之后,不可修改
age:number,
[prop:string]:any
}
let info:Info={
name:'小朋友',
age:18,
address:'合肥',
school:'合肥工业大学'
}