recordAsync
Создаёт схему записи.
const Schema = v.recordAsync<TKey, TValue, TMessage>(key, value, message);
Обобщённые типы
TKeyextends BaseSchema<string, string | number | symbol, BaseIssue<unknown>> | BaseSchemaAsync<string, string | number | symbol, BaseIssue<unknown>>TValueextends BaseSchema<unknown, unknown, BaseIssue<unknown>> | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>TMessageextends ErrorMessage<RecordIssue> | undefined
Параметры
keyTKeyvalueTValuemessageTMessage
Пояснение
С помощью recordAsync можно проверить тип данных входного значения, а также соответствие записей key и value. Если входное значение не является объектом, можно использовать message для настройки сообщения об ошибке.
Эта схема отфильтровывает некоторые записи из записи в целях безопасности.
Эта схема помечает запись как необязательную, если обнаруживает, что её ключ имеет литеральный тип. Это связано с тем, что технически невозможно обнаружить отсутствующие литеральные ключи, не ограничив схему
keyтипамиstring,enumиpicklist. Однако при использованииenumиpicklistлучше использоватьobjectAsyncсentriesFromList, поскольку это уже обеспечивает необходимую функциональность. Это решение также уменьшает размер пакетаrecordAsync, поскольку ему нужно проверять только записи входного значения, а не отсутствующие ключи.
Возвращает
SchemaRecordSchemaAsync<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/