Validator()
type Validator<TForm, TField> = (value, scope, root) => ValidationError | null;
Defined in: core/types/validation-schema.ts:56
Чистый синхронный валидатор поля.
Сигнатура зеркалит то, что реально вызывает движок M1
(validateModel/validateFormModel/validateModelSync): validator(value, scope, root).
value— значение поля (TField);scope— ближайшая scope-модель (под-модель элемента массива или корень). ИзTForm/TFieldеё тип не выводится, поэтомуunknown— потребитель сужает сам (для типизированного scope используйте ModelValidator<TField, TScope, TForm>);root— корневая модель формыFormModel<TForm>(реактивный value-proxy:root.fieldчитает значение). ВозвращаетValidationErrorлибоnull. Не знает про реестр валидации.
Совместим с полем validators узла схемы (см. SchemaValidator) — там же лежат ModelValidator
и ValidatorFn. Встроенные фабрики (required()/email()/…) возвращают (value) => … и
дополнительные аргументы игнорируют.
Type Parameters
TForm
TForm
TField
TField
Parameters
value
TField
scope
unknown
root
FormModel<TForm>
Returns
ValidationError | null
Example
const isAdult: Validator<MyForm, number> = (value, _scope, root) => {
if (value < 18) return { code: 'tooYoung', message: '18+' };
// root — FormModel<MyForm>: root.someOtherField читается как значение
return null;
};
// Фабрики и кастомные валидаторы кладутся в `validators: [...]` поля:
const schema = {
children: [
{ value: model.$.age, component: Input, validators: [required(), isAdult] },
],
};