一、接口类型
TypeScript的接口五种类型属性接口、方法接口、索引接口、类接口,
ts接口的主要功能是进行约束。
1、属性接口
主要功能对传入参数进行约束
interface User {
userId:string;
userName:string;
age?:number;
}
var find = function(user:User):void {
console.log(user);
};
find({userId:"sss","userName":"imya"});
传入的参数必须包含userId,userName,
如果非必须传入的参数,可以通过?标识
2、方法接口
主要功能对传入参数和返回参数进行约束
interface countById {
(userId:string):number;
}
var countByUserId:countById = function(userId:string):number{
return 1;
}
countByUserId('1');
3、索引接口
主要功能对数组和对象进行约束
// 对数组约束
interface ArrayInterface{
[index:number]:string
}
var arr12:ArrayInterface = ["1","2"];
// 对对象约束
interface ObjectInterface{
[index:string]:string
}
var arr13:ObjectInterface = {name:"111"};
4、类接口
主要功能对类的属性和方法进行约束
类接口实现通过关键字implements
interface Person {
id:string;
name:string;
age?:number;
}
interface PersonService{
findById(userId:string):Person;
}
class PersonServiceImpl implements PersonService {
findById(userId:string):Person{
return {"id":"122","name":"zhang","age":123};
}
}
二、接口的扩展
一个接口可以通过继承另一个接口达到扩展的功能
实现通过关键字extends完成
interface Animal1 {
print1():void;
}
interface Animal2 {
print2():void;
}
interface Person1 extends Animal1,Animal2{
name:string;
display():void;
}
class Women implements Person1 {
name:string;
constructor(name:string){
this.name = name;
}
display():void{
}
print1():void {
}
print2():void {
}
}