partialCheckAsync
Создает действие проверки для частичной валидации.
const Action = v.partialCheckAsync<TInput, TPaths, TSelection, TMessage>(
paths,
requirement,
message
);
Параметры обобщенного типа
TInputextends PartialInputTPathsextends RequiredPathsTSelectionextends DeepPickN<TInput, TPaths>TMessageextends ErrorMessage<PartialCheckIssue<TSelection>> | undefined
Параметры
pathsValidPaths<TInput, TPaths>requirement(input: TSelection) => MaybePromise<boolean>messageTMessage
Пояснение
С помощью partialCheckAsync можно свободно проверять выбранные входные данные и возвращать true, если они допустимы, или false в противном случае. Если входные данные не соответствуют вашему requirement, можно использовать message, чтобы настроить сообщение об ошибке.
Отличие от
checkAsyncзаключается в том, чтоpartialCheckAsyncможно выполнить, как только выбранная часть данных станет допустимой, тогда какcheckAsyncвыполняется только после ввода всего набора данных. Это может быть важным преимуществом при работе с формами.
Возвращаемое значение
ActionPartialCheckActionAsync<TInput, TPaths, TSelection, TMessage>
Примеры
В следующих примерах показано, как можно использовать partialCheckAsync.
Схема сведений о сообщении
Схема для проверки сведений, связанных с сообщением.
import { isSenderInTheGroup } from '~/api';
const MessageDetailsSchema = v.pipeAsync(
v.object({
sender: v.object({
name: v.pipe(v.string(), v.minLength(2), v.maxLength(45)),
email: v.pipe(v.string(), v.email()),
}),
groupId: v.pipe(v.string(), v.uuid()),
message: v.pipe(v.string(), v.nonEmpty(), v.maxLength(500)),
}),
v.forwardAsync(
v.partialCheckAsync(
[['sender', 'email'], ['groupId']],
(input) =>
isSenderInTheGroup({
senderEmail: input.sender.email,
groupId: input.groupId,
}),
'The sender is not in the group.'
),
['sender', 'email']
)
);
Связанные API
Следующие API можно использовать вместе с partialCheckAsync.
Схемы
any, array, custom, instance, intersect, lazy, looseObject, looseTuple, nonNullable, nonNullish, nonOptional, object, objectWithRest, record, strictObject, strictTuple, tuple, tupleWithRest, union, variant
Утилиты
Асинхронные API
arrayAsync, awaitAsync, customAsync, forwardAsync, intersectAsync, lazyAsync, looseObjectAsync, looseTupleAsync, nonNullableAsync, nonNullishAsync, nonOptionalAsync, objectAsync, objectWithRestAsync, pipeAsync, recordAsync, strictObjectAsync, strictTupleAsync, tupleAsync, tupleWithRestAsync, unionAsync, variantAsync
© Fabian Hiller
Licensed under the MIT License.
https://valibot.dev/api/partialCheckAsync/