pick
Новая схема объекта только с перечисленными полями.
Сигнатура
ts
function pick<S, K extends keyof S>(schema: ObjectSchema<S>, keys: K[]): ObjectSchema<Pick<S, K>>Параметры
| Параметр | Тип | Описание |
|---|---|---|
schema | ObjectSchema | Схема, созданная object |
keys | string[] | Поля, которые нужно оставить. TypeScript проверяет, что они есть в схеме |
Пример
Вход по email и паролю
ts
const User = object({
name: string(),
email: pipe(string(), email()),
password: pipe(string(), minLength(8)),
});
const Login = pick(User, ['email', 'password']);
validate(Login, { email: 'a@a.ru', password: '12345678', name: 'x' }).data;
// { email: 'a@a.ru', password: '12345678' }