Вопрос проверяет умение трансформировать типы и переиспользовать существующие модели данных.
Omit — это utility type, который позволяет создать новый тип, исключив одно или несколько полей из существующего. Он не меняет исходный тип, а возвращает новый. Чаще всего используется, когда нужно передать объект без служебных или чувствительных полей. Это делает типы чище и безопаснее.
Omit<T, K> — это встроенный utility type TypeScript, который создаёт тип T без свойств K.
type User = {
id: number;
name: string;
password: string;
};
type PublicUser = Omit<User, 'password'>;
PublicUser содержит:
id
name
type SafeUser = Omit<User, 'password' | 'id'>;
DTO для API
Формы редактирования
Публичные модели данных
Удаление служебных полей (createdAt, updatedAt)
Omit:
работает только на уровне типов
не удаляет поле в runtime
Omit — удобный и безопасный способ получить производный тип без лишних полей, не дублируя описание структуры.