label
Задаёт название поля для параметра {label} в сообщениях об ошибках — как :attribute в Laravel.
Сигнатура
ts
function label<T>(schema: Schema<T>, text: string): Schema<T>Параметры
| Параметр | Тип | Описание |
|---|---|---|
schema | Schema<T> | Схема поля |
text | string | Название поля |
Особенности
- Встроенные сообщения не используют
{label}— добавьте его в свои тексты черезsetMessagesили опциюmessages. - Без
labelпараметр{label}равен имени поля:email,0для элемента массива. - Название действует только на ошибки самого поля, а не на вложенные поля.
- Если сайт на нескольких языках, удобнее передавать названия опцией
labelsуvalidate— отдельно для каждого языка.
Примеры
Названия в схеме
ts
const Signup = object({
email: label(pipe(string(), email()), 'Email'),
password: label(pipe(string(), minLength(8)), 'Password'),
});
setMessages({ required: '{label} is required', minLength: '{label} must be at least {min} characters' });
validate(Signup, { password: '123' }).errors;
// { email: 'Email is required', password: 'Password must be at least 8 characters' }Названия для разных языков
ts
const labels = {
ru: { email: 'Почта', 'address.city': 'Город' },
en: { email: 'Email', 'address.city': 'City' },
};
validate(Order, body, { messages: locales[lang], labels: labels[lang] });См. также
- Сообщения и локализация
- validate — опции
messagesиlabels