Spec-Zone.ru › Valibot

partialAsync

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

const Schema = v.partialAsync<TSchema, TKeys>(schema, keys);

Дженерики

  • 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 extends ObjectKeys<TSchema> | undefined

Параметры

  • schema TSchema
  • keys TKey

Объяснение

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

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

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

  • Schema SchemaWithPartialAsync<TSchema, TKeys>

Примеры

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

Схема обновления пользователя

Схема для обновления данных пользователя.

import { isEmailAbsent, isUsernameAbsent } from '~/api';

const UserSchema = v.objectAsync({
  email: v.pipeAsync(
    v.string(),
    v.email(),
    v.checkAsync(isEmailAbsent, 'The email is already in the database.')
  ),
  username: v.pipeAsync(
    v.string(),
    v.nonEmpty(),
    v.checkAsync(isUsernameAbsent, 'The username is already in the database.')
  ),
  password: v.pipe(v.string(), v.minLength(8)),
});

const UpdateUserSchema = v.partialAsync(UserSchema);

/*
  { 
    email?: string;
    username?: string; 
    password?: string;
  }
*/

Связанное

Следующие API можно объединять с partialAsync.

Схемы

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, pick, required, 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, partialCheckAsync, rawCheckAsync, rawTransformAsync, recordAsync, requiredAsync, safeParseAsync, safeParserAsync, setAsync, strictObjectAsync, strictTupleAsync, transformAsync, tupleAsync, tupleWithRestAsync, undefinedableAsync, unionAsync

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

Spec-Zone.ru

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