partialAsync
Создает измененную копию схемы объекта, которая помечает все или только выбранные записи как необязательные.
const Schema = v.partialAsync<TSchema, TKeys>(schema, keys);
Дженерики
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>>TKeysextends ObjectKeys<TSchema> | undefined
Параметры
schemaTSchemakeysTKey
Объяснение
partialAsync создает измененную копию переданного объекта schema, в которой все записи или только выбранные keys являются необязательными. Это аналогично утилитарному типу Partial в TypeScript.
Поскольку
partialAsyncизменяет тип данных входных и выходных значений, запрещено передавать схему, которая была изменена методомpipeAsync, так как это может привести к ошибкам во время выполнения. Пожалуйста, используйте методpipeAsyncпосле изменения схемы с помощьюpartialAsync.
Возвращаемое значение
SchemaSchemaWithPartialAsync<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
Утилиты
Асинхронные
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/