Проблема, с которой я столкнулся, заключается в том, что у меня есть некоторые базовые (общие) классы, свойства которых инициализируются через конструктор класса. Когда я затем перехожу к расширению этого класса, чтобы создать более конкретный класс, я должен повторно ввести те же параметры, что и конструктор базового класса, чтобы я мог передать их в super. Если вы представите очень общий класс, у которого есть много свойств, которые инициализируются через конструктор, и который довольно часто расширяется, необходимость постоянно повторно набирать все эти свойства, чтобы каждый раз передавать их в super, кажется неэффективной. Я, вероятно, упустил какой-то общий способ предотвратить это. Есть идеи, как сделать это более эффективным? Возможно, каким-то образом «унаследовав» параметры конструктора родительского класса?
Вот пример кода, и, как вы можете видеть, в конструкторе Programmer
мне нужно снова ввести name
, age
и height
, чтобы передать его super
:
class Person {
name: string;
age: number;
height: number;
constructor(name: string, age: number, height: number) {
this.name = name;
this.age = age;
this.height = height;
}
}
class Programmer extends Person {
languages: string[];
constructor(name: string, age: number, height: number, languages: string[]) {
super(name, age, height);
this.languages = languages;
}
}