extends в interface
interface описывает форму объекта так же, как объектный type, но умеет наследоваться: интерфейс может расширить другой и добавить к его полям свои.
В задании два интерфейса объявлены независимо друг от друга:
Онлайн-редактор кода, разбор решения и отметки о прогрессе доступны после входа.
ВойтиСоздать аккаунт — бесплатноinterface описывает форму объекта так же, как объектный type, но умеет наследоваться: интерфейс может расширить другой и добавить к его полям свои.
В задании два интерфейса объявлены независимо друг от друга:
Компилятор ругается на name: в Admin объявлено только поле role, поэтому имя оказывается лишним свойством. По смыслу же администратор это пользователь с дополнительной ролью, и связь между двумя интерфейсами нужно выразить в самом коде, а не дублировать поле name руками.
Наследование как раз про это: производный интерфейс получает все поля родителя и объявляет только то, что добавляет от себя. Расширять можно и несколько интерфейсов сразу, перечислив их через запятую.
Подробнее: Extending Types — справочник TypeScript.
Свяжи интерфейсы так, чтобы Admin включал поле name из User и добавлял своё поле role. Само поле name в Admin дублировать не нужно, объект a менять тоже.