strictObjectAsync
Создаёт схему строгого объекта.
const Schema = v.strictObjectAsync<TEntries, TMessage>(entries, message);
Дженерики
TEntriesextends ObjectEntriesAsyncTMessageextends ErrorMessage<StrictObjectIssue> | undefined
Параметры
entriesTEntriesmessageTMessage
Объяснение
С помощью strictObjectAsync вы можете валидировать тип входных данных и проверять, соответствует ли содержимое entries. Если входные данные не являются объектом или содержат неизвестные записи, вы можете использовать message для настройки сообщения об ошибке.
Отличие от
objectAsyncзаключается в том, что эта схема возвращает проблему для неизвестных записей. Она намеренно возвращает только одну проблему. В противном случае злоумышленники могли бы отправлять большие объекты для исчерпания ресурсов устройства. Если вам нужна проблема для каждого неизвестного ключа, используйте схемуobjectWithRestAsyncсneverв качестве аргументаrest.
Возвращаемое значение
SchemaStrictObjectSchemaAsync<TEntries, TMessage>
Примеры
Следующие примеры показывают, как можно использовать strictObjectAsync. Дополнительные примеры и пояснения см. в руководстве по объектам.
Схема нового пользователя
Схема для валидации строгого объекта, содержащего только определённые данные нового пользователя.
import { isEmailPresent } from '~/api';
const NewUserSchema = v.strictObjectAsync({
firstName: v.pipe(v.string(), v.minLength(2), v.maxLength(45)),
lastName: v.pipe(v.string(), v.minLength(2), v.maxLength(45)),
email: v.pipeAsync(
v.string(),
v.email(),
v.checkAsync(isEmailPresent, 'The email is already in use by another user.')
),
password: v.pipe(v.string(), v.minLength(8)),
avatar: v.optional(v.pipe(v.string(), v.url())),
});
Связанные элементы
Следующие API можно комбинировать с strictObjectAsync.
Схемы
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, objectWithRestAsync, optionalAsync, parseAsync, parserAsync, partialAsync, partialCheckAsync, pipeAsync, rawCheckAsync, rawTransformAsync, recordAsync, requiredAsync, safeParseAsync, safeParserAsync, setAsync, strictTupleAsync, transformAsync, tupleAsync, tupleWithRestAsync, unionAsync, variantAsync
© Fabian Hiller
Licensed under the MIT License.
https://valibot.dev/api/strictObjectAsync/