Spec-Zone.ru › Valibot

strictObjectAsync

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

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

Дженерики

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

Параметры

  • entries TEntries
  • message TMessage

Объяснение

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

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

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

  • Schema StrictObjectSchemaAsync<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/

Spec-Zone.ru

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