strictObject
Создаёт схему строгого объекта.
const Schema = v.strictObject<TEntries, TMessage>(entries, message);
Дженерики
TEntriesextends ObjectEntriesTMessageextends ErrorMessage<StrictObjectIssue> | undefined
Параметры
entriesTEntriesmessageTMessage
Объяснение
С помощью strictObject вы можете проверять тип данных входных данных и соответствие содержимого entries. Если входные данные не являются объектом или содержат неизвестные записи, вы можете использовать message для настройки сообщения об ошибке.
Отличие от
objectзаключается в том, что эта схема возвращает ошибку для неизвестных записей. Намеренно возвращается только одна ошибка. В противном случае злоумышленники могли бы отправлять большие объекты для исчерпания ресурсов устройства. Если вам нужна ошибка для каждого неизвестного ключа, используйте схемуobjectWithRestсо значениемneverв качестве аргументаrest.
Возвращаемое значение
SchemaStrictObjectSchema<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/