Spec-Zone.ru › Valibot

objectWithRestAsync

Создает схему объекта с rest.

const Schema = v.objectWithRestAsync<TEntries, TRest, TMessage>(
  entries,
  rest,
  message
);

Дженерики

  • TEntries extends ObjectEntriesAsync
  • TRest extends BaseSchema<unknown, unknown, BaseIssue<unknown>> | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>
  • TMessage extends ErrorMessage<ObjectWithRestIssue> | undefined

Параметры

  • entries TEntries
  • rest TRest
  • message TMessage

Объяснение

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

Отличие от objectAsync заключается в том, что эта схема включает неизвестные записи в выходные данные. Кроме того, по соображениям безопасности эта схема отфильтровывает определенные записи из неизвестных записей.

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

  • Schema ObjectWithRestSchemaAsync<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/

Spec-Zone.ru

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