接口是一系列抽象方法的声明,是一些方法特征的集合,这些方法都应该是抽象的,需要由具体的类去实现,然后第三方就可以通过这组抽象方法调用,让具体的类执行具体的方法。
实际上接口就是对行为和动作的规范,对批量方法的约束
一:接口的定义和使用
//属性接口 interface FullName { firstname: string; secondname: string; } function PrintName(name: FullName) { //必须传入firstname\secondname } //调用 PrintName({ firstname: '张三', secondname:'李四' }) //调用 var obj = { firstname: '张三', secondname: '李四', age:20 } PrintName(obj)
二:函数式接口
对函数的参数和返回值进行约束
interface encrypt { (key:string,value:string):string } let md5: encrypt = function (key:string,value:string):string { return key+value } md5('s', 'r');
三:可索引接口
数组、对象的额约束
//数组的约束
interface userarr {
[index: number]: string;//对数组的索引index约束为
}
let arr: userarr = ['s','d']
//对象的约束 interface userobj { [index: string]: string; } let arr: userobj = {'name':'zhangsna','age':'11'}
四:类类型接口(对类进行约束,类似于抽象类)
interface Animal { name: string, eat(str: string): void; } class Dog implements Animal { name: string; constructor(name:string) { this.name=name } eat() { console.log(); } } var dog = new Dog('lili'); dog.eat();
五:接口其他用法
1:接口继承接口
interface Animal { eat(): void; } interface Person extends Animal { work(): void; } class Web implements Person { constructor() { } eat() { console.log(); } work() { } }