1. 程式人生 > >typescript學習(6)---定義介面

typescript學習(6)---定義介面

1、定義

定義一個介面:

interface Accountable{
  getIncome():number;
}

現在來確保Firm類實現了這個介面:

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

如果實現了一個指定的介面,那麼必須實現這個接口裡面多定義的所有方法,這些方法的實現必須與介面定義裡面的簽名完全一致。

ts介面也支援定義屬性,如我們可以在上述介面中引入一個名為accountNumber的欄位,型別為string:

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

可以在類裡面把accountNumber定義成一個欄位或者一個getter。

2、介面繼承

介面之間可以互相繼承:

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;
}

3、實現多個介面

如果類的行為是很多介面中定義的行為的並集,那麼類可以實現所有這些介面:

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