Spec-Zone.ru › Valibot

undefinedable

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

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

Дженерики

  • TWrapped extends BaseSchema<unknown, unknown, BaseIssue<unknown>>
  • TDefault extends Default<TWrapped, undefined>

Параметры

  • wrapped TWrapped
  • default_ TDefault

Объяснение

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

Во время выполнения undefinedable ведет себя точно так же, как optional. Единственное отличие заключается в типе входных и выходных данных при использовании для записей объекта. В то время как optional добавляет вопросительный знак к ключу, undefinedable этого не делает.

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

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

  • Schema UndefinedableSchema<TWrapped, TDefault>

Примеры

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

Строковая схема, допускающая undefined

Схема, которая принимает string и undefined.

const UndefinedableStringSchema = v.undefinedable(
  v.string(),
  "I'm the default!"
);

Схема даты, допускающая undefined

Схема, которая принимает Date и undefined.

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

const UndefinedableDateSchema = v.undefinedable(v.date(), () => new Date());

Схема записи, допускающей undefined

Схема объекта с записью, допускающей undefined.

const UndefinedableEntrySchema = v.object({
  key: v.undefinedable(v.string()),
});

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

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

const UndefinedableNumberSchema = v.undefinedable(v.number());
const NumberSchema = v.unwrap(UndefinedableNumberSchema);

Связанное

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

Схемы

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

Методы

assert, config, fallback, getDefault, getDefaults, getFallback, getFallbacks, is, message, parse, parser, pipe, safeParse, safeParser, unwrap

Действия

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

Утилиты

entriesFromList, isOfKind, isOfType

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

Spec-Zone.ru

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