Spec-Zone.ru › Valibot

recordAsync

Создаёт схему записи.

const Schema = v.recordAsync<TKey, TValue, TMessage>(key, value, message);

Обобщённые типы

  • TKey extends BaseSchema<string, string | number | symbol, BaseIssue<unknown>> | BaseSchemaAsync<string, string | number | symbol, BaseIssue<unknown>>
  • TValue extends BaseSchema<unknown, unknown, BaseIssue<unknown>> | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>
  • TMessage extends ErrorMessage<RecordIssue> | undefined

Параметры

  • key TKey
  • value TValue
  • message TMessage

Пояснение

С помощью recordAsync можно проверить тип данных входного значения, а также соответствие записей key и value. Если входное значение не является объектом, можно использовать message для настройки сообщения об ошибке.

Эта схема отфильтровывает некоторые записи из записи в целях безопасности.

Эта схема помечает запись как необязательную, если обнаруживает, что её ключ имеет литеральный тип. Это связано с тем, что технически невозможно обнаружить отсутствующие литеральные ключи, не ограничив схему key типами string, enum и picklist. Однако при использовании enum и picklist лучше использовать objectAsync с entriesFromList, поскольку это уже обеспечивает необходимую функциональность. Это решение также уменьшает размер пакета recordAsync, поскольку ему нужно проверять только записи входного значения, а не отсутствующие ключи.

Возвращает

  • Schema RecordSchemaAsync<TKey, TValue, TMessage>

Примеры

В следующих примерах показано, как можно использовать recordAsync.

Схема преобразования ID в адрес электронной почты

Схема для проверки записи, сопоставляющей ID с общедоступным адресом электронной почты пользователя.

import { isEmailPublic } from '~/api';

const IdToEmailSchema = v.recordAsync(
  v.pipe(v.string(), v.uuid()),
  v.pipeAsync(
    v.string(),
    v.email(),
    v.checkAsync(isEmailPublic, 'The email address is private.')
  )
);

Связанные API

Следующие API можно использовать вместе с recordAsync.

Схемы

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

Действия

brand, check, description, entries, flavor, guard, maxEntries, metadata, minEntries, notEntries, partialCheck, rawCheck, rawTransform, readonly, title, transform

Утилиты

entriesFromList, isOfKind, isOfType

Асинхронные

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

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

Spec-Zone.ru

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