首页 > 解决方案 > TypeScript - 作为抽象类的子对象的数组的语法是什么?

问题描述

我有这个 TypeScript 继承层次结构,Person 是基础抽象类。而 Man 类和 Woman 类是抽象 Person 类的后代。抽象类 Person 有一个名为 _children 的属性,它是抽象 Person 对象的 Array。我需要在我的女人和男人类中添加一组孩子。但我想我不能添加 Person 对象的数组,因为它是抽象的。相反,我需要将后代对象 Man & Woman 添加到数组中。你能告诉我这个结构的语法是什么吗?所以我需要一个可以包含 Man & Woman 对象的数组。

当我尝试这样做时:

private children: Person[] = [this.womanA, this.manB, this.womanD, this.manC]; 
private manD: Man = new Man(this.children, 'Lyngby');

我收到错误:未捕获的 ReferenceError:Person is not defined at Object../src/app/_models/Man.ts

abstract class Person {
    private _children: Person[];    
    constructor(children: Person[]) {
        this._children = children;
    }
}

export class Woman extends Person {
    private _shoesize: number;
    constructor(children: Person[], shoesize: number) {
        super(children);
        this._shoesize = shoesize;
    }
}

export class Man extends Person {
    private _favteam: string;
    constructor(children: Person[], favteam: string) {
        super(children);
        this._favteam = favteam;
    }
}

标签: arraystypescriptabstract-class

解决方案


推荐阅读