interface IPerson { name: string; age: number; }
在接口里面,和类一样,我们可以声明一些属性
class Person { constructor(public config: IPerson) {} }
我们再声明一个类,这个类里面接收一个IPerson类型的参数,这时候,我们看到了接口的第一个用法,它作为一个方法参数的类型声明。这个时候去调用的时候,它会去检查,是不是接口声明的那些树形,比如
var p1 = new Person({ name: 'zina', age: 18 })只有这样才不报错,如果多传一个属性或少传一个属性都会报错。这是接口的第一个用法。当你的接口用作方法的参数的类型声明时,在调用的时候,ts会去检查你传入的这个参数,是否满足接口所声明的所有属性
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') } }