requiredAsync
Создает измененную копию схемы объекта, которая помечает все или только выбранные записи как обязательные.
const AllKeysSchema = v.requiredAsync<TSchema, TMessage>(schema, message);
const SelectedKeysSchema = v.requiredAsync<TSchema, TKeys, TMessage>(
schema,
keys,
message
);
Дженерики
TSchemaextends 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>>TKeysObjectKeys<TSchema>TMessageErrorMessage<NonOptionalIssue> | undefined
Параметры
schemaTSchemakeysTKeymessageTMessage
Объяснение
requiredAsync создает измененную копию переданного объекта schema, где все или только выбранные keys являются обязательными. Это аналогично служебному типу Required в TypeScript.
Поскольку
requiredAsyncизменяет тип данных входных и выходных значений, запрещено передавать схему, измененную с помощью методаpipeAsync, так как это может вызвать ошибки во время выполнения. Пожалуйста, используйте методpipeAsyncпосле модификации схемы с помощьюrequiredAsync.
Возвращаемое значение
AllKeysSchemaSchemaWithRequiredAsync<TSchema, undefined, TMessage>SelectedKeysSchemaSchemaWithRequiredAsync<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
Утилиты
Асинхронные
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/