Видеоуроки, интерактивный редактор и сохранение прогресса — бесплатно, сразу после входа.
ВойтиСоздать аккаунт — бесплатноЗакончили урок?
Войдите, чтобы отмечать прогресс
? после [K in keyof T] делает каждое поле необязательным. MyPartial<{ name: string; age: number }> раскрывается в { name?: string; age?: number }, и объект только с age подходит.
Это не упрощённая версия, а буквально то, как Partial объявлен в стандартной библиотеке:
Кроме ? есть readonly, а перед любым из них можно поставить -, чтобы модификатор снять:
Первые два это встроенные Readonly и Required. Третьего в стандартной библиотеке нет, но пишется он так же.
Перебирать можно любое объединение строк, тогда исходный тип вообще не нужен:
Так устроен Record из прошлого курса, и Pick из задания 12: тот перебирает не все ключи T, а только переданные в K.