Ограничение не обрезает
Ограничение T extends X говорит, каким как минимум должен быть тип. Но сам T при этом остаётся тем, что передали, со всеми лишними полями.
В задании функция что-то «сохраняет» и возвращает обратно:
Видеоуроки, интерактивный редактор и сохранение прогресса — бесплатно, сразу после входа.
ВойтиСоздать аккаунт — бесплатноОграничение T extends X говорит, каким как минимум должен быть тип. Но сам T при этом остаётся тем, что передали, со всеми лишними полями.
В задании функция что-то «сохраняет» и возвращает обратно:
Ошибка: «Property 'age' does not exist on type '{ name: string; }'». Функция получила объект с name и age, вернула тот же самый объект, но по типу результата от него осталось только name.
Ограничение тут написано правильно: функции действительно нужно, чтобы у сущности было имя. Проблема в возвращаемом типе. Он описан через ограничение, а не через сам параметр типа, и поэтому вся информация о конкретном объекте теряется на выходе.
Поправь возвращаемый тип save так, чтобы функция возвращала сущность с её исходным типом. savedAge должен стать доступен как number. Ограничение на T, тело функции и вызов менять не нужно.