TypeScript имеет ряд служебных типов, которые можно использовать для изменения существующих типов. Двумя из этих типов утилит являются Omit и Pick.

Пропустить

Тип Omit используется для создания нового типа, который опускает указанные свойства из существующего типа. Например, следующий код создает новый тип с именем UserWithoutId, в котором отсутствует свойство id из типа User:

interface User {
  id: number;
  name: string;
  email: string;
}

type UserWithoutId = Omit<User, "id">;

Тип UserWithoutId можно использовать для создания нового объекта User, не имеющего свойства id.

Выбрать

Тип Pick используется для создания нового типа, который включает только указанные свойства из существующего типа. Например, следующий код создает новый тип с именем UserNameEmail, который включает только свойства name и email из типа User:

interface User {
  id: number;
  name: string;
  email: string;
}

type UserNameEmail = Pick<User, "name", "email">;

Тип UserNameEmail можно использовать для создания нового объекта User, который имеет только свойства name и email.

Когда использовать Omit and Pick

Типы Omit и Pick можно использовать в различных ситуациях. Например, их можно использовать для:

  • Создайте новый тип, который является более конкретным, чем существующий тип.
  • Создайте новый тип, который будет проще использовать с определенной библиотекой или фреймворком.
  • Уменьшите размер типа, удалив неиспользуемые свойства.

Заключение

Типы Omit и Pick — это мощные служебные типы, которые можно использовать для изменения существующих типов в TypeScript. Их можно использовать в различных ситуациях для создания новых типов, более специфичных, простых в использовании или меньших по размеру.