У меня есть эта иерархия наследования TypeScript, Person является базовым абстрактным классом.В то время как класс Man и класс Woman являются потомками абстрактного класса Person.Абстрактный класс Person имеет свойство с именем _children, которое является массивом абстрактного объекта Person.Мне нужно добавить массив детей в мой класс «Женщина и мужчина».Но я не могу добавить объект Array of the Person, потому что он абстрактный.Вместо этого мне нужно добавить объекты-потомки «Мужчина и женщина» в массив.Не могли бы вы сказать мне, каков синтаксис этой конструкции?Поэтому мне нужен массив, который может содержать объекты «Мужчина и женщина».
Когда я пытаюсь сделать это:
private children: Person[] = [this.womanA, this.manB, this.womanD, this.manC];
private manD: Man = new Man(this.children, 'Lyngby');
Я получаю сообщение об ошибке: Uncaught ReferenceError: Person не определен в 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;
}
}