Гипотетически, если родительский класс имеет так много аргументов в классе, который нужно наследовать, как мне супер() все существующие аргументы в родительских элементах для его расширенного класса?
Должен ли я выяснить все аргументы в конструкторе родительского класса и вручную вводить их все?
Я пытался погуглить, например, «супер все, супер все, супер все существующие и т. д.», но так и не нашел ответа.
Заранее спасибо.
so many classes to be inherited ... нет, только один (напрямую)
@JaromandaX извините, это была опечатка, я имел в виду, что «так много аргументов» нужно наследовать



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Если дочерний и родительский элементы принимают одни и те же аргументы, используйте остальные и спред:
class Child extends Parent {
constructor(...args) {
super(...args);
}
}
Если сигнатуры конструктора одинаковы, это будет работать для любого дочернего элемента независимо от аргументов родителя. Это также работает для нескольких унаследованных классов, например:
class GrandChild extends Child {
constructor(...args) {
super(...args);
}
}
Но длинные цепочки наследования обычно являются антипаттерном в JS. Я бы рекомендовал избегать их в большинстве случаев, если для этого нет действительно веской причины.
Если у дочернего элемента есть дополнительный завершающий аргумент, передача его родителю, если родитель не определяет такой аргумент, будет работать нормально.
Если у дочернего элемента есть дополнительный ведущий аргумент, используйте:
class Child extends Parent {
constructor(childArg, ...args) {
super(...args);
}
}
как насчет того, чтобы унаследовать все и добавить еще один аргумент в дочерний класс? возможно ли это с помощью оператора распространения?
Да, хотя как зависит от того, где лишний аргумент
Как??? например, дочерний элемент extends parent {structor(...args,newone){ super(...args); this.newone = newone}... это выдает мне сообщение об ошибке.
Было бы неплохо добавить сюда, как добавлять типы Typescript. Я расширяю класс и не касаюсь аргументов конструктора (и я хочу, чтобы типы «были такими же», как у Родителя, без необходимости самостоятельно переопределять типы Родителя).
Если вы ищете способ передать все аргументы из конструктора в дочернем классе в его родительский класс, взгляните на этот другой вопрос о переполнении стека