PassFront
  1. PassFront
  2. База знаний
  3. Продвинутые темы

Что такое Utility type?

Продвинутые темы

Utility Types — это встроенные обобщённые типы TypeScript, которые преобразуют существующие типы, избавляя от ручного дублирования описаний.

Частые utility types

  • Partial<T> — все поля необязательные.
  • Required<T> — все поля обязательные.
  • Readonly<T> — все поля только для чтения.
  • Pick<T, K> — выбрать подмножество полей.
  • Omit<T, K> — исключить поля.
  • Record<K, V> — объект с ключами K и значениями V.
  • Partial/Exclude/Extract/ReturnType/Parameters — и другие.
interface User {
  id: number;
  name: string;
  email: string;
}

type UserPreview = Pick<User, 'id' | 'name'>; // { id; name }
type UserPatch = Partial<User>;               // все поля опциональны
type WithoutId = Omit<User, 'id'>;            // без id
type Roles = Record<string, boolean>;         // { [k: string]: boolean }

Полезные для функций

type R = ReturnType<typeof fn>;   // тип возврата
type P = Parameters<typeof fn>;   // кортеж аргументов

Зачем нужны

  • DRY: не переписывать типы вручную.
  • Гибкость: описать «этот тип, но частичный/без поля».

Коротко для собеседования

Utility Types — встроенные генерики TypeScript для трансформации типов: Partial, Required, Readonly, Pick, Omit, Record, ReturnType. Позволяют выводить новые типы из существующих без дублирования.

Другие вопросы раздела