Spec-Zone.ru › Valibot

partialCheckAsync

Создает действие проверки для частичной валидации.

const Action = v.partialCheckAsync<TInput, TPaths, TSelection, TMessage>(
  paths,
  requirement,
  message
);

Параметры обобщенного типа

  • TInput extends PartialInput
  • TPaths extends RequiredPaths
  • TSelection extends DeepPickN<TInput, TPaths>
  • TMessage extends ErrorMessage<PartialCheckIssue<TSelection>> | undefined

Параметры

  • paths ValidPaths<TInput, TPaths>
  • requirement (input: TSelection) => MaybePromise<boolean>
  • message TMessage

Пояснение

С помощью partialCheckAsync можно свободно проверять выбранные входные данные и возвращать true, если они допустимы, или false в противном случае. Если входные данные не соответствуют вашему requirement, можно использовать message, чтобы настроить сообщение об ошибке.

Отличие от checkAsync заключается в том, что partialCheckAsync можно выполнить, как только выбранная часть данных станет допустимой, тогда как checkAsync выполняется только после ввода всего набора данных. Это может быть важным преимуществом при работе с формами.

Возвращаемое значение

  • Action PartialCheckActionAsync<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

Утилиты

isOfKind, isOfType

Асинхронные 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/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API