ウェブサイト検索

TypeScript - クラスのメンバーである型付き配列サブクラスを作成する


型付き配列を作成して、そこにメソッドを追加したいと考えています。例えば、以下の例のようにです。Arrayを拡張してTenantArrayを作成します。オブジェクトをプッシュすることなどはできるようですが、TenantArray上で関数を呼び出そうとすると、それが関数ではないというエラーが出ます。関数自体の値をログに出そうとするとundefinedになります。どなたか、私が見落としていることについて教えていただけますか?これは愚かな方法でしょうか?もしかすると、テナント配列とその配列に作用する関数を持つPopulationクラスを作るべきでしょうか?

class Manor {
  name: string;
  tenants: Tenants;

  constructor() {
    this.name = '';
    this.tenants = new Tenants();
  }
}


interface ITenant {
  acres: number
}

class Tenants extends Array<ITenant> {

  totalAcres(): number {
    let total = 0;
    for (const tenant of this) {
      total += tenant.acres;
    }
    return total;
  }
}

const myManor = new Manor();
console.log(myManor.tenants.totalAcres());