partialCheck
Creates a partial check validation action.
const Action = v.partialCheck<TInput, TPaths, TSelection, TMessage>(
paths,
requirement,
message
);
Generics
TInputextends Record<string, unknown> | ArrayLike<unknown>TPathsextends RequiredPathsTSelectionextends DeepPickN<TInput, TPaths>TMessageextends ErrorMessage<PartialCheckIssue<TSelection>> | undefined
Parameters
pathsValidPaths<TInput, TPaths>requirement(input: TSelection) => booleanmessageTMessage
Explanation
With partialCheck you can freely validate the selected input and return true if it is valid or false otherwise. If the input does not match your requirement, you can use message to customize the error message.
The difference to
checkis thatpartialCheckcan be executed whenever the selected part of the data is valid, whilecheckis executed only when the entire dataset is typed. This can be an important advantage when working with forms.
Returns
ActionPartialCheckAction<TInput, TPaths, TSelection, TMessage>
Examples
The following examples show how partialCheck can be used.
Register schema
Schema that ensures that the two passwords match.
const RegisterSchema = v.pipe(
v.object({
email: v.pipe(
v.string(),
v.nonEmpty('Please enter your email.'),
v.email('The email address is badly formatted.')
),
password1: v.pipe(
v.string(),
v.nonEmpty('Please enter your password.'),
v.minLength(8, 'Your password must have 8 characters or more.')
),
password2: v.string(),
}),
v.forward(
v.partialCheck(
[['password1'], ['password2']],
(input) => input.password1 === input.password2,
'The two passwords do not match.'
),
['password2']
)
);
Related
The following APIs can be combined with partialCheck.
Schemas
any, array, custom, instance, intersect, lazy, looseObject, looseTuple, nonNullable, nonNullish, nonOptional, object, objectWithRest, record, strictObject, strictTuple, tuple, tupleWithRest, union, variant
Methods
Utils
© Fabian Hiller
Licensed under the MIT License.
https://valibot.dev/api/partialCheck/