name это не параметр а свойство класса, поэтому во время вызова name ещё нет
Это я понимаю) дело в том что взял с одного видео урока и повторил один в один в песочнице. в общем оказалось что если взять версию языка 4.05 то всё ок. если повысить то валится с ошибкой. такие дела.
спасибо! я умею пользоваться плейграундом))) уже нашел истинную причину)))
Это не истинная причина. Это вообще не причина) Истинная причина: в 4.05 и ниже в глобальных декларациях есть global.name В версиях старше 4.05 это поле глобального объекта стало deprecated. Твой код — это шорткат для super(window.name, age) и этот window.name не имеет ничего общего с this.name. Отсюда и странное сообщение об ошибке, и перечёркнутый аргумент (а не параметр). Было бы другое имя, тебе бы тс подсказал «может, не foo, а this.foo?». А при обращении к this.foo уже сказал бы «рановато», как на моем скриншоте. Такие дела
Класс! Спасибо!
Получается лучше в дочерний класс в конструкторе указать явно public name:string и если нужно значение по умолчанию то добавить = “default str” и потом name пробросить в super?
Хз, как лучше — ничего не посоветую. Я классы не использую и в них не шарю
Обсуждают сегодня