关键字 interface
- 通过关键字 interface 定义属性类型
- 声明的接口首字母需要大写
interface Props {
name: string;
}
名重合
- 当定义了像个一项的接口, 这个时候就会将两个接口进行重合
interface Props {
name: string;
}
interface Props {
age: number;
}
// 以上两个接口类型会重合到一块, 如下
interface Props {
name: string;
age: number;
}
额外的属性检查 (索引签名)【任意属性添加】
interface Person {
name: string
age: number
[propName: string]: any // 索引签名
}
可选属性
interface Person {
name: string,
age: number
class?: string // 可选属性
}
只读属性
- 通过 readonly 来指定只读属性
- 常用于 接口返回的 id 或者 函数
interface Student {
readonly name: string
age: number
readonly open: () => number
}
接口继承
interface Person {
name: string
age: number
}
interface Student extends Person {
class: string
}
函数类型定义
interface Service {
name: string
getName: () => string
setName: (name: string) => void
}
class PersonService implements Service {
name: string
constructor() {
this.name = ''
}
getName() {
return this.name
}
setName(name: string) {
this.name = name
}
}