接口用于描述一个类或者一个对象的结构,描述他们的属性和方法,所以接口可以当做一个类的声明
interface
对象定义
我们使用interface
来定义一个接口,定义的方法全部为抽象方法,必须重写
interface myInterface{
name:string,
age:number
}
interface myInterface{
sex:"male"|"female",
// sayName:()=>void
sayName():void
}
const person:myInterface = {
name:"Jim",
age:18,
sex:"male",
sayName(){
console.log(this.name);
}
}
console.log(person);
- 接口可以定义相同的名字,最终还是一个接口,如案例中也可以写成
interface myInterface{
name:string,
age:number,
sex:"male"|"female",
sayName():void
}
类定义
一般我们使用
implements
关键字来使用接口
class Person implements myInterface{
name: string;
age: number;
sex: "male" | "female";
sayName(): void {
console.log(this.name);
}
}
数组定义
接口也可以定义数组,定义属性名的时候,要用
index
interface Obj {
[propName:string]:any
}
interface myList {
[index:number]:Obj
}
const arr:myList = [
{name:"黑猫警长"}
]
接口的继承
使用
extends
来进行接口的继承,且后可以跟多个接口,实现多重继承
interface Obj {
[propName:string]:any
}
interface myInterface{
name:string,
age:number
}
interface IPerson extends myInterface,Obj{
sex:"male"|"female",
sayName():void
}
class Person implements IPerson{
name: string;
age: number;
sex: "male" | "female";
hobby:"read"|"write"
sayName(): void {
console.log(this.name);
}
}