TypeScript · Senior · Запитання 6 з 75

Як реалізувати DeepPartial<T>?

type DeepPartial<T> = T extends object
  ? { [K in keyof T]?: DeepPartial<T[K]> }
  : T;

Пояснення

Псевдоніми типів можуть посилатися на себе. У реальній реалізації варто окремо обробити масиви, функції й Date, щоб не «розбирати» їх на властивості. Глибока рекурсія має ліміт інстанціювання, тому величезні типи сповільнюють компілятор.

Де почитати

Помилка в запитанні

TypeScript · Senior · запитання 6

Перевірте себе

Пройдіть тест TypeScript · Senior: запитання й варіанти перемішуються, а наприкінці - розбір помилок.

Пройти цей тест