接口(interface )
在面向对象的编程中,接口是一种规范的定义,定义了行为和动作的规范.
接口不关心这些类的内部状态数据,也不关心这些类里方法的实现细节,它只规定这批类里必须提供某些方法,提供这些方法的类就可以满足实际需要。
typescript中的接口分为
1,属性接口
2,函数类型接口
3,可索引接口
4,类类型接口
属性接口:对传入对象的约束
interface Person {
name:string;
age:number
}
function f6(per:Person) {
console.log('姓名'+per.name)
}
//调用f6这个方法时,必须传入和上面接口同类型的参数
f6({name:'zzz',age:23});
f6('123');//错误
f6({name:'222',age:34,sex:'男'});//错误
函数类型接口:对方法传入的参数以及返回值进行约束
interface f7 {
(key:string,value:string):string
}
var md5:f7=function (key:string,value:string):string {
return key+value
};
console.log(md5('name','zhang'));
可索引接口:对数组和对象的约束(不常用)
//对数组的约束
interface f8 {
[index:number]:string
}
var arr:f8=['12','lisi'];//正确
var arr1:f8=[1,'lsis',a]//错误
//对对象的约束
interface f9 {
[index:string]:string
}
var obj:f9={'姓名':'张三'}
var obj1:f9=[]//错误
类类型接口:对类的约束(和抽象类有点相似)
interface Animal {
name:string;
eat(str:string):void;
}
class Dog implements Animal{// 类可以继承接口
name:string;
constructor(name:string){
this.name=name
}
eat(): void {
console.log(this.name+'吃东西')
}
}