Skip to content

extend ​

Новая схема объекта с дополнительными полями. Поле с тем же именем заменяется новой схемой.

Сигнатура ​

ts
function extend<S, E>(schema: ObjectSchema<S>, fields: E): ObjectSchema<Omit<S, keyof E> & E>

Параметры ​

ПараметрТипОписание
schemaObjectSchemaСхема, созданная object
fieldsRecord<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)),
});

См. также ​