> Что такое utility types в TypeScript, например Partial и DeepPartial (TypeScript)
Уровень: junior · Роль: frontend · Категория: Технические вопросы
Компании: Иннотех, Инрэко, Soft_Media_Group, DigitalSail, Арго
Стек: TypeScript
> Пример ответа
Utility types в TypeScript - это встроенные обобщённые типы, которые позволяют трансформировать существующие типы, создавая на их основе новые с изменёнными свойствами. Они помогают избежать дублирования кода и упрощают работу с типами.
Partial<T> делает все поля типа T необязательными. Например:
TYPESCRIPTinterface User {name: string;age: number;}type PartialUser = Partial<User>; // { name?: string; age?: number; }
Это полезно, когда нужно обновить только часть объекта, не передавая все поля.
DeepPartial<T> - это не встроенный, а пользовательский рекурсивный тип, который делает необязательными все вложенные поля. Реализуется так:
TYPESCRIPTtype DeepPartial<T> = {[P in keyof T]?: T[P] extends object ? DeepPartial<T[P]> : T[P];};
Пример:
TYPESCRIPTinterface Config {server: { host: string; port: number };}type DeepPartialConfig = DeepPartial<Config>;// { server?: { host?: string; port?: number } }
DeepPartial удобен для работы с глубоко вложенными структурами, например, при частичном обновлении конфигурации или ответов API.
Другие популярные utility types: Required<T>, Readonly<T>, Pick<T, K>, Omit<T, K>, Record<K, T>.
> Похожие задачи по frontend
Что такое объединение и пересечение типов в TypeScript
Что такое enum в TypeScript
Как реализовать функцию getProperty с типизацией в TypeScript, которая возвращает значение по ключу объекта?
Как типизировать функцию, работающую с массивом промисов с разными типами в TypeScript
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью