typescript接口定义

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_24147051/article/details/85061540

接口描述:

接口的使用,这里讲的是接口的使用 (其实就是定义一些规定)


接口定义

interface Accountable{
  getIncome():number;
}

接口实现

如果实现了一个指定的接口,那么必须实现这个接口里面多定义的所有方法,这些方法的实现必须与接口定义里面的签名完全一致。

class Firm implements Accountable{
  getIncome():number {
    //...
  }
}

ts接口也支持定义属性,如我们可以在上述接口中引入一个名为accountNumber的字段,类型为string:

interface Accountable{
  accountNumber: string;
  getIncome(): number;
}

可以在类里面把accountNumber定义成一个字段或者一个getter。


接口继承

接口之间可以互相继承:

interface Firm extends Accountable {
  ssn: string;
}

接口还支持多继承:

interface Accountable {
  accountNumber: string;
  getIncome(): number;
}
interface Human {
  age: number;
  name: number;
}
interface Firm extends Accountable,Human{
  ssn: string;
}

实现多个接口

如果类的行为是很多接口中定义的行为的并集,那么类可以实现所有这些接口:

class Person implements Human,Accountable {
  age: number;
  name: string;
  accountNumber: string;
  getIncome(): number {
    //...
  }
}

接口实例

//数据接口
interface Learn{
  sex:string,
  infer:string,
  ha?:Boolean,  //可选参数
}


//函数接口
interface Say{
  (name:string,sex:string):boolean;
}

let le:Learn = {sex:'man',infer:'histroy',ha:true};
let say:Say;

say = function(name:string,sex:string):boolean{
  let flag = name.search(sex);
  return (flag != -1)

}

console.log(le);
console.log(say('高、富、帅、钱','穷'));

注意点:

  1. 只能给接口内部的定义的数据赋值
  2. 定义函数接口的话,返回值必须和接口定义的返回值类型一致

猜你喜欢

转载自blog.csdn.net/qq_24147051/article/details/85061540