extend
Новая схема объекта с дополнительными полями. Поле с тем же именем заменяется новой схемой.
Сигнатура
ts
function extend<S, E>(schema: ObjectSchema<S>, fields: E): ObjectSchema<Omit<S, keyof E> & E>Параметры
| Параметр | Тип | Описание |
|---|---|---|
schema | ObjectSchema | Схема, созданная object |
fields | Record<string, Schema> | Новые поля или замена существующих |
Примеры
Новые поля
ts
const User = object({ name: string(), email: pipe(string(), email()) });
const Admin = extend(User, {
role: oneOf(['admin', 'moderator']),
});
// { name: string; email: string; role: 'admin' | 'moderator' }Другие правила для поля
ts
const StrongSignup = extend(Signup, {
password: pipe(string(), minLength(12)),
});