У меня проблема в том, что у меня есть несколько базовых (универсальных) классов, свойства которых инициализируются через конструктор класса. Затем, когда я иду расширять этот класс, чтобы создать более конкретный класс, я должен заново ввести те же параметры, что и у конструктора базового класса, просто чтобы я мог передать их в 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;
}
}