Spec-Zone.ru › Valibot

objectWithRest

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

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

Дженерики

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

Параметры

  • entries TEntries
  • rest TRest
  • message TMessage

Пояснение

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

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

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

  • Schema ObjectWithRestSchema<TEntries, TRest, TMessage>

Примеры

Следующие примеры показывают, как можно использовать objectWithRest. Дополнительные примеры и пояснения см. в руководстве по объектам.

Схема объекта с rest

Схема для валидации объекта с обобщенными rest-записями.

const ObjectSchemaWithRest = v.objectWithRest(
  {
    key1: v.string(),
    key2: v.number(),
  },
  v.boolean()
);

Объединение нескольких объектов

Схема, объединяющая записи двух схем объектов.

const MergedObjectSchema = v.objectWithRest(
  {
    ...ObjectSchema1.entries,
    ...ObjectSchema2.entries,
  },
  v.null()
);

Пометка ключей как необязательных

Схема для валидации объекта с частичными записями.

const PartialObjectSchema = partial(
  objectWithRest(
    {
      key1: string(),
      key2: number(),
    },
    v.undefined()
  )
);

Объект с выбранными записями

Схема для валидации только выбранных записей объекта.

const PickObjectSchema = v.pick(
  v.objectWithRest(
    {
      key1: v.string(),
      key2: v.number(),
      key3: v.boolean(),
    },
    v.null()
  ),
  ['key1', 'key3']
);

Связанные разделы

Следующие API можно объединять с objectWithRest.

Схемы

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, optional, picklist, promise, record, set, strictObject, strictTuple, string, symbol, tuple, tupleWithRest, undefined, undefinedable, union, unknown, variant, void

Методы

assert, config, fallback, forward, getDefault, getDefaults, getFallback, getFallbacks, is, keyof, message, omit, parse, parser, partial, pick, pipe, required, safeParse, safeParser

Действия

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

Утилиты

entriesFromList, isOfKind, isOfType

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

Spec-Zone.ru

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