strictObject
Creates a strict object schema.
const Schema = v.strictObject<TEntries, TMessage>(entries, message);
Generics
TEntriesextends ObjectEntriesTMessageextends ErrorMessage<StrictObjectIssue> | undefined
Parameters
entriesTEntriesmessageTMessage
Explanation
With strictObject you can validate the data type of the input and whether the content matches entries. If the input is not an object or does include unknown entries, you can use message to customize the error message.
The difference to
objectis that this schema returns an issue for unknown entries. It intentionally returns only one issue. Otherwise, attackers could send large objects to exhaust device resources. If you want an issue for every unknown key, use theobjectWithRestschema withneverfor therestargument.
Returns
SchemaStrictObjectSchema<TEntries, TMessage>
Examples
The following examples show how strictObject can be used. Please see the object guide for more examples and explanations.
Simple object schema
Schema to validate a strict object with two keys.
const SimpleObjectSchema = v.strictObject({
key1: v.string(),
key2: v.number(),
});
Merge several objects
Schema that merges the entries of two object schemas.
const MergedObjectSchema = v.strictObject({
...ObjectSchema1.entries,
...ObjectSchema2.entries,
});
Mark keys as optional
Schema to validate an object with partial entries.
const PartialObjectSchema = v.partial(
v.strictObject({
key1: v.string(),
key2: v.number(),
})
);
Object with selected entries
Schema to validate only selected entries of a strict object.
const PickObjectSchema = v.pick(
v.strictObject({
key1: v.string(),
key2: v.number(),
key3: v.boolean(),
}),
['key1', 'key3']
);
Related
The following APIs can be combined with strictObject.
Schemas
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
Methods
assert, config, fallback, forward, getDefault, getDefaults, getFallback, getFallbacks, is, keyof, message, omit, parse, parser, partial, pick, pipe, required, safeParse, safeParser
Actions
check, brand, description, entries, flavor, guard, maxEntries, metadata, minEntries, notEntries, partialCheck, rawCheck, rawTransform, readonly, title, transform
Utils
entriesFromList, isOfKind, isOfType
© Fabian Hiller
Licensed under the MIT License.
https://valibot.dev/api/strictObject/