Напиши тип Senior Условные и mapped-типы обновлено
DeepPartial
Вопрос
Рекурсивный Partial: необязательными становятся и вложенные поля.
type DeepPartial<T> = /* ? */;
Попробуйте сами
Напишите тип, как написали бы в коде.
Показать ответ и разбор
Коротко
Правильный тип: { [K in keyof T]?: T[K] extends object ? DeepPartial<T[K]> : T[K] }. Ответ Почему так Рекурсивные утилиты собираются из mapped type + conditional.
Правильный тип
{ [K in keyof T]?: T[K] extends object ? DeepPartial<T[K]> : T[K] }
Разбор
Ответ
{ [K in keyof T]?: T[K] extends object ? DeepPartial<T[K]> : T[K] }
Почему так
Рекурсивные утилиты собираются из mapped type + conditional. Практический нюанс: такая версия применит рекурсию и к массивам с функциями - в бою добавляют отдельные ветки для них.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.