接口的作用,在面向对象的编程中,接口是一种规范的定义,它定义了行为的动作和规范,在程序设计里面,接口起到一种限制和规范的作用。
- 属性接口
- 可选属性接口
- 可索引接口
- 类类型接口
- 继承接口
1.属性接口 一批属性行为规范的集合
interface Info {
firstName: string;
lastName: string;
}
function printName(name: Info) {
console.log(`${name.firstName} - ${name.lastName}`)
}
2.可选属性接口
有时候接口里的属性不全都是必需的。 有些是只在某些条件下存在,或者根本不存在。
带有可选属性的接口与普通的接口定义差不多,只是在可选属性名字定义的后面加一个?符号。
interface Config {
type: string;
url: string;
data?: string;
dataType: string;
}
3.可索引接口:对数据,对象的约束
interface List {
[index: number]: string;
}
let listArr: list = ['a', 'b']
4.类类型接口 对类的约束和规范 和抽象类类似
interface Animal {
name: string;
eat(food: string): viod;
}
class Dog implements Animal {
name: string;
constructor(name: string) {
this.name = name;
}
eat(): void {
console.log(`${this.name} is eating`)
}
}
let d = new Dog('dog')
d.eat()
// ===========================================
class Cat implements Animal {
name: string;
constructor(name: string) {
this.name = name;
}
eat(food: string): void {
console.log(`${this.name} is eating ${food}`)
}
}
let c = new Cat('cat')
c.eat('mouse')
5.继承接口 接口继承接口
和类一样,接口也可以相互继承。 这让我们能够从一个接口里复制成员到另一个接口里,可以更灵活地将接口分割到可重用的模块里。
interface Animal {
eat(): void;
}
interface Person extends Animal {
work(): void;
}