我想创建一个类型化数组来添加方法。例如,在下面的示例中。我通过扩展Array来创建TenantArray。好像我可以将对象推入其中,但是如果我尝试在TenantArray上调用一个函数,我会得到一个错误,说它不是函数。如果我尝试记录函数的值,我将得到未定义。任何人都可以给我一些洞察我错过的东西。这是一个愚蠢的方法吗?我是否应该使用租户数组和调用它的函数来创建一个人口类?
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());