typescript 接口
接口:用来建立某种代码约定,使得其他开发者在调用某个方法或创建新的类时必须遵循接口所定义的代码约定
在js里面没有接口这个概念,在ts里面通过两个关键字来支撑接口这个特性
interface
interface IPerson {
name: string;
age: number;
}
在接口里面,和类一样,我们可以声明一些属性
class Person {
constructor(public config: IPerson) {}
}
我们再声明一个类,这个类里面接收一个IPerson类型的参数,这时候,我们看到了接口的第一个用法,它作为一个方法参数的类型声明。这个时候去调用的时候,它会去检查,是不是接口声明的那些树形,比如
var p1 = new Person({ name: 'zina', age: 18 })
只有这样才不报错,如果多传一个属性或少传一个属性都会报错。这是接口的第一个用法。当你的接口用作方法的参数的类型声明时,在调用的时候,ts会去检查你传入的这个参数,是否满足接口所声明的所有属性
implements
interface Animal {
eat();
}
class Sheep implements Animal{ }
这里我们声明了一个Animal的接口,它有个方法叫做eat。再声明了一个类,这里有个关键字implements。它是声明Sheep这个类实现Animal这个接口。
当一个类实现一个接口的时候,它必须实现这个接口里声明的方法
interface Animal { eat(); } class Sheep implements Animal{ eat() { console.log('im eat grass') } } class Tiger implements Animal{ eat() { console.log('i eat meat') } }