objectWithRestAsync
Создает схему объекта с rest.
const Schema = v.objectWithRestAsync<TEntries, TRest, TMessage>(
entries,
rest,
message
);
Дженерики
TEntriesextends ObjectEntriesAsyncTRestextends BaseSchema<unknown, unknown, BaseIssue<unknown>> | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>TMessageextends ErrorMessage<ObjectWithRestIssue> | undefined
Параметры
entriesTEntriesrestTRestmessageTMessage
Объяснение
С помощью objectWithRestAsync вы можете проверять тип данных входных данных и соответствие содержимого entries и rest. Если входные данные не являются объектом, вы можете использовать message для настройки сообщения об ошибке.
Отличие от
objectAsyncзаключается в том, что эта схема включает неизвестные записи в выходные данные. Кроме того, по соображениям безопасности эта схема отфильтровывает определенные записи из неизвестных записей.
Возвращаемое значение
SchemaObjectWithRestSchemaAsync<TEntries, TRest, TMessage>
Примеры
Следующие примеры показывают, как можно использовать objectWithRestAsync. Дополнительные примеры и пояснения приведены в руководстве по объектам.
Схема карты слов
Схема для валидации объекта с деталями мутации карты слов.
import { isUserAllowedToMutate } from '~/api';
// Assume the rest of the keys are always English words
const WordMapSchema = v.objectWithRestAsync(
{
$userId: v.pipeAsync(
v.string(),
v.regex(/^[a-z0-9]{12}$/i),
v.checkAsync(
isUserAllowedToMutate,
'The user is not allowed to change the word map.'
)
),
$targetLanguage: v.union([
v.literal('hindi'),
v.literal('spanish'),
v.literal('french'),
]),
},
v.string()
);
Связанные ресурсы
Следующие API можно комбинировать с objectWithRestAsync.
Схемы
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, keyof, omit, pick
Действия
brand, check, description, entries, flavor, guard, maxEntries, metadata, minEntries, notEntries, partialCheck, rawCheck, rawTransform, readonly, title, transform
Утилиты
entriesFromList, isOfKind, isOfType
Асинхронные
arrayAsync, checkAsync, customAsync, exactOptionalAsync, fallbackAsync, forwardAsync, getDefaultsAsync, getFallbacksAsync, intersectAsync, lazyAsync, looseObjectAsync, looseTupleAsync, mapAsync, nonNullableAsync, nonNullishAsync, nonOptionalAsync, nullableAsync, nullishAsync, objectAsync, optionalAsync, parseAsync, parserAsync, partialAsync, partialCheckAsync, pipeAsync, rawCheckAsync, rawTransformAsync, recordAsync, requiredAsync, safeParseAsync, safeParserAsync, setAsync, strictObjectAsync, strictTupleAsync, transformAsync, tupleAsync, tupleWithRestAsync, unionAsync, variantAsync
© Fabian Hiller
Licensed under the MIT License.
https://valibot.dev/api/objectWithRestAsync/