Spec-Zone.ru › Valibot

requiredAsync

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

const AllKeysSchema = v.requiredAsync<TSchema, TMessage>(schema, message);
const SelectedKeysSchema = v.requiredAsync<TSchema, TKeys, TMessage>(
  schema,
  keys,
  message
);

Дженерики

  • TSchema extends SchemaWithoutPipe<LooseObjectSchemaAsync<ObjectEntriesAsync, ErrorMessage<LooseObjectIssue> | undefined> | ObjectSchemaAsync<ObjectEntriesAsync, ErrorMessage<ObjectIssue> | undefined> | ObjectWithRestSchemaAsync<ObjectEntriesAsync, BaseSchema<unknown, unknown, BaseIssue<unknown>> | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>, ErrorMessage<ObjectWithRestIssue> | undefined> | StrictObjectSchemaAsync<ObjectEntriesAsync, ErrorMessage<StrictObjectIssue> | undefined>>
  • TKeys ObjectKeys<TSchema>
  • TMessage ErrorMessage<NonOptionalIssue> | undefined

Параметры

  • schema TSchema
  • keys TKey
  • message TMessage

Объяснение

requiredAsync создает измененную копию переданного объекта schema, где все или только выбранные keys являются обязательными. Это аналогично служебному типу Required в TypeScript.

Поскольку requiredAsync изменяет тип данных входных и выходных значений, запрещено передавать схему, измененную с помощью метода pipeAsync, так как это может вызвать ошибки во время выполнения. Пожалуйста, используйте метод pipeAsync после модификации схемы с помощью requiredAsync.

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

  • AllKeysSchema SchemaWithRequiredAsync<TSchema, undefined, TMessage>
  • SelectedKeysSchema SchemaWithRequiredAsync<TSchema, TKeys, TMessage>

Примеры

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

Схема новой задачи

Схема для валидации объекта, содержащего сведения о задаче.

import { isOwnerPresent } from '~/api';

const UpdateTaskSchema = v.objectAsync({
  owner: v.optionalAsync(
    v.pipeAsync(
      v.string(),
      v.email(),
      v.checkAsync(isOwnerPresent, 'The owner is not in the database.')
    )
  ),
  title: v.optional(v.pipe(v.string(), v.nonEmpty(), v.maxLength(255))),
  description: v.optional(v.pipe(v.string(), v.nonEmpty())),
});

const NewTaskSchema = v.requiredAsync(UpdateTaskSchema);

/*
  {
    owner: string;
    title: string;
    description: string;
  }
*/

Связанное

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

Схемы

array, exactOptional, intersect, lazy, looseObject, looseTuple, map, nonNullable, nonNullish, nonOptional, nullable, nullish, object, objectWithRest, optional, record, set, strictObject, strictTuple, tuple, tupleWithRest, undefinedable, union

Методы

assert, config, fallback, forward, getDefault, getDefaults, getFallback, getFallbacks, keyof, message, omit, partial, pick, unwrap

Действия

brand, check, description, entries, flavor, guard, maxEntries, metadata, minEntries, notEntries, partialCheck, rawCheck, rawTransform, readonly, title, transform

Утилиты

isOfKind, isOfType

Асинхронные

arrayAsync, checkAsync, exactOptionalAsync, fallbackAsync, forwardAsync, getDefaultsAsync, getFallbacksAsync, intersectAsync, lazyAsync, looseObjectAsync, looseTupleAsync, mapAsync, nonNullableAsync, nonNullishAsync, nonOptionalAsync, nullableAsync, nullishAsync, objectAsync, objectWithRestAsync, optionalAsync, parseAsync, parserAsync, partialAsync, partialCheckAsync, rawCheckAsync, rawTransformAsync, recordAsync, safeParseAsync, safeParserAsync, setAsync, strictObjectAsync, strictTupleAsync, transformAsync, tupleAsync, tupleWithRestAsync, undefinedableAsync, unionAsync

© Fabian Hiller
Licensed under the MIT License.
https://valibot.dev/api/requiredAsync/

Spec-Zone.ru

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