omit
Новая схема объекта без перечисленных полей.
Сигнатура
ts
function omit<S, K extends keyof S>(schema: ObjectSchema<S>, keys: K[]): ObjectSchema<Omit<S, K>>Параметры
| Параметр | Тип | Описание |
|---|---|---|
schema | ObjectSchema | Схема, созданная object |
keys | string[] | Поля, которые нужно убрать |
Особенности
По умолчанию лишние поля удаляются из data (режим strip), поэтому omit удобно использовать и для ответа API: прогнать объект из базы через схему без пароля — и пароль не уйдёт клиенту.
Пример
Публичный профиль
ts
const User = object({
id: number(),
name: string(),
email: string(),
password: string(),
});
const PublicUser = omit(User, ['password', 'email']);
parse(PublicUser, userFromDb); // { id: 1, name: 'Ivan' }