Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про TypeScript: omit, exclude, utility

В чём разница между Omit и Exclude?

Вопрос проверяет понимание утилитарных типов TypeScript и различие между работой с объектными типами и объединениями.

Короткий ответ

Omit используется для удаления свойств из объектного типа.
Exclude применяется для исключения элементов из union-типа.
Несмотря на схожие названия, они работают с разными сущностями.
Omit обычно применяют для DTO и пропсов компонентов.
Exclude — для сужения наборов возможных значений.

Длинный ответ

Чтобы корректно применять Omit и Exclude, важно понимать, на каком уровне работает тип: структура объекта или объединение типов.

Определение

Определение:
Omit — утилитарный тип, который удаляет указанные ключи из объектного типа.
Exclude — утилитарный тип, который исключает элементы из union-типа.

Omit: работа с объектами

Omit применяется, когда нужно взять существующий тип и убрать из него одно или несколько полей.

Пример

type User = {
  id: string;
  email: string;
  password: string;
};

type PublicUser = Omit<User, "password">;

Где используется

  • Пропсы React-компонентов

  • DTO для API

  • Публичные представления сущностей

Exclude: работа с union

Exclude используется для удаления отдельных вариантов из объединения.

Пример

type Status = "loading" | "success" | "error";
type StableStatus = Exclude<Status, "loading">;

Где используется

  • Статусы

  • Типы событий

  • Ограничение допустимых значений

Частая ошибка

  • Попытка применить Exclude к объектному типу

  • Использование Omit для работы с union

Вывод

Omit работает с ключами объектов, а Exclude — с вариантами union-типа; выбор зависит от формы исходного типа.

Уровень

  • Рейтинг:

    5

  • Сложность:

    6

Навыки

  • TypeScript

    TypeScript

Ключевые слова

#omit

#exclude

#utility

Подпишись на React Developer в телеграм