Spec-Zone.ru › Valibot

nullableAsync

Создает схему, допускающую null.

const Schema = v.nullableAsync<TWrapped, TDefault>(wrapped, default_);

Дженерики

  • TWrapped extends BaseSchema<unknown, unknown, BaseIssue<unknown>> | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>
  • TDefault extends DefaultAsync<TWrapped, null>

Параметры

  • wrapped TWrapped
  • default_ TDefault

Объяснение

С помощью nullableAsync валидация вашей схемы будет пропускать входные значения null, и если вы укажете входное значение default_, схема будет использовать его, если входным значением является null. По этой причине тип выходных данных может отличаться от типа входных данных схемы.

Обратите внимание, что nullableAsync не принимает undefined в качестве входных данных. Если вы хотите принимать входные данные undefined, используйте optionalAsync, а если хотите принимать входные данные null и undefined, используйте вместо этого nullishAsync. Кроме того, если вы хотите установить выходное значение по умолчанию для любого невалидного ввода, вам следует использовать fallbackAsync.

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

  • Schema NullableSchemaAsync<TWrapped, TDefault>

Примеры

Следующие примеры показывают, как можно использовать nullableAsync.

Схема имени пользователя, допускающая null

Схема, которая принимает уникальное имя пользователя или null.

При использовании функции в качестве параметра default_ схема будет возвращать уникальное имя пользователя из вызова функции каждый раз, когда на вход поступает null.

import { getUniqueUsername, isUsernameUnique } from '~/api';

const NullableUsernameSchema = v.nullableAsync(
  v.pipeAsync(
    v.string(),
    v.nonEmpty(),
    v.checkAsync(isUsernameUnique, 'The username is not unique.')
  ),
  getUniqueUsername
);

Развертывание схемы, допускающей null

Используйте unwrap, чтобы отменить действие nullableAsync.

import { isUsernameUnique } from '~/api';

const UsernameSchema = v.unwrap(
  // Assume this schema is from a different file and is reused here
  v.nullableAsync(
    v.pipeAsync(
      v.string(),
      v.nonEmpty(),
      v.checkAsync(isUsernameUnique, 'The username is not unique.')
    )
  )
);

Связанное

Следующие API можно комбинировать с nullableAsync.

Схемы

any, array, bigint, blob, boolean, custom, date, enum, exactOptional, file, function, instance, intersect, lazy, literal, looseObject, looseTuple, map, nan, never, nonNullable, nonNullish, nonOptional, null, nullable, nullish, number, object, objectWithRest, optional, picklist, promise, record, set, strictObject, strictTuple, string, symbol, tuple, tupleWithRest, undefined, undefinedable, union, unknown, variant, void

Методы

config, getDefault, getFallback, unwrap

Действия

brand, check, description, flavor, guard, metadata, partialCheck, rawCheck, rawTransform, readonly, title, transform

Утилиты

entriesFromList, isOfKind, isOfType

Асинхронные

arrayAsync, awaitAsync, checkAsync, customAsync, exactOptionalAsync, fallbackAsync, getDefaultsAsync, getFallbacksAsync, intersectAsync, lazyAsync, looseObjectAsync, looseTupleAsync, mapAsync, nonNullableAsync, nonNullishAsync, nonOptionalAsync, nullishAsync, objectAsync, objectWithRestAsync, optionalAsync, parseAsync, parserAsync, partialCheckAsync, pipeAsync, rawCheckAsync, rawTransformAsync, recordAsync, safeParseAsync, safeParserAsync, setAsync, strictObjectAsync, strictTupleAsync, transformAsync, tupleAsync, tupleWithRestAsync, undefinedableAsync, unionAsync, variantAsync

© Fabian Hiller
Licensed under the MIT License.
https://valibot.dev/api/nullableAsync/

Spec-Zone.ru

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