unionAsync
Создает схему объединения.
Рекомендуем ознакомиться с руководством по объединениям перед использованием этой функции схемы.
const Schema = v.unionAsync<TOptions, TMessage>(options, message);
Обобщения
TOptionsextends UnionOptionsAsyncTMessageextends ErrorMessage<UnionIssue<InferIssue<TOptions[number]>>> | undefined
Параметры
optionsTOptionsmessageTMessage
Пояснение
С помощью unionAsync можно проверить, соответствует ли входное значение одной из заданных options. Если входное значение не соответствует схеме и его нельзя однозначно отнести к одному из вариантов, можно использовать message, чтобы настроить сообщение об ошибке.
Если некорректное входное значение можно однозначно отнести к одной из схем на основании типа данных, возвращается результат этой схемы. В противном случае возвращается общее сообщение об ошибке, содержащее ошибки каждой схемы в виде подчиненных ошибок. Это особый случай в библиотеке, поскольку ошибки unionAsync могут противоречить друг другу.
Возвращает
SchemaUnionSchemaAsync<TOptions, TMessage>
Примеры
В следующих примерах показано, как можно использовать unionAsync.
Схема пользователя
Схема для проверки адреса электронной почты или имени пользователя.
import { isEmailPresent, isUsernamePresent } from '~/api';
const UserSchema = v.unionAsync([
v.pipeAsync(
v.string(),
v.email(),
v.checkAsync(isEmailPresent, 'The email is not in the database.')
),
v.pipeAsync(
v.string(),
v.nonEmpty(),
v.checkAsync(isUsernamePresent, 'The username is not in the database.')
),
]);
Связанные API
Следующие API можно использовать вместе с unionAsync.
Схемы
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
Действия
args, base64, bic, brand, bytes, check, checkItems, codePoints, creditCard, cuid2, decimal, description, digits, domain, email, emoji, empty, endsWith, entries, everyItem, excludes, filterItems, findItem, finite, flavor, graphemes, gtValue, guard, hash, hexadecimal, hexColor, imei, includes, integer, ip, ipv4, ipv6, isbn, isrc, isoDate, isoDateTime, isoDateTimeSecond, isoTime, isoTimeSecond, isoTimestamp, isoWeek, ksuid, length, ltValue, mac, mac48, mac64, mapItems, maxBytes, maxCodePoints, maxEntries, maxGraphemes, maxLength, maxSize, maxValue, maxWords, metadata, mimeType, minBytes, minCodePoints, minEntries, minGraphemes, minLength, minSize, minValue, minWords, multipleOf, nonEmpty, notBytes, notCodePoints, notEntries, notGraphemes, notLength, notSize, notValue, notValues, notWords, octal, parseJson, partialCheck, rawCheck, rawTransform, readonly, reduceItems, regex, returns, rfcEmail, safeInteger, size, slug, someItem, sortItems, startsWith, stringifyJson, title, toCamelCase, toKebabCase, toLowerCase, toMaxValue, toMinValue, toPascalCase, toSnakeCase, toUpperCase, transform, trim, trimEnd, trimStart, ulid, url, uuid, value, values, words
Утилиты
entriesFromList, isOfKind, isOfType
Асинхронные
arrayAsync, awaitAsync, 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, recordAsync, safeParseAsync, safeParserAsync, setAsync, strictObjectAsync, strictTupleAsync, transformAsync, tupleAsync, tupleWithRestAsync, variantAsync
© Fabian Hiller
Licensed under the MIT License.
https://valibot.dev/api/unionAsync/