Mapped тип
Mapped type это тип, который строится перебором ключей. Синтаксис похож на цикл:
Видеоуроки, интерактивный редактор и сохранение прогресса — бесплатно, сразу после входа.
ВойтиСоздать аккаунт — бесплатноMapped type это тип, который строится перебором ключей. Синтаксис похож на цикл:
type Flags<T> = { [K in keyof T]: boolean };
type UserFlags = Flags<{ name: string; age: number }>;
// { name: boolean; age: boolean }K по очереди принимает каждый ключ T, а справа от двоеточия описано, какой тип будет у поля с этим ключом.
В задании попытка написать свой Partial:
Ошибка: «Property 'name' is missing in type '{ age: number; }' but required in type 'MyPartial<...>'». Перебор ключей и типы полей написаны правильно, но получилась точная копия исходного типа: все поля остались обязательными. А Partial должен делать их необязательными.
В обычном объектном типе поле становится необязательным с помощью модификатора после имени. В mapped type модификаторы ставятся в том же месте, сразу после квадратных скобок с ключом.
Подробнее: Mapped Types — справочник TypeScript.
Поправь MyPartial так, чтобы все поля исходного типа стали необязательными, а их типы не изменились. Объявление patch менять не нужно.