Spec-Zone.ru › Valibot

strictObject

Создаёт схему строгого объекта.

const Schema = v.strictObject<TEntries, TMessage>(entries, message);

Дженерики

  • TEntries extends ObjectEntries
  • TMessage extends ErrorMessage<StrictObjectIssue> | undefined

Параметры

  • entries TEntries
  • message TMessage

Объяснение

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

Отличие от object заключается в том, что эта схема возвращает ошибку для неизвестных записей. Намеренно возвращается только одна ошибка. В противном случае злоумышленники могли бы отправлять большие объекты для исчерпания ресурсов устройства. Если вам нужна ошибка для каждого неизвестного ключа, используйте схему objectWithRest со значением never в качестве аргумента rest.

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

  • Schema StrictObjectSchema<TEntries, TMessage>

Примеры

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

Простая схема объекта

Схема для валидации строгого объекта с двумя ключами.

const SimpleObjectSchema = v.strictObject({
  key1: v.string(),
  key2: v.number(),
});

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

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

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

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

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

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

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

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

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

Связанные элементы

Следующие API можно комбинировать с strictObject.

Схемы

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, 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/strictObject/

Spec-Zone.ru

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