checkAsync
Создаёт действие проверки.
const Action = v.checkAsync<TInput, TMessage>(requirement, message);
Обобщения
TInputextends anyTMessageextends ErrorMessage<CheckIssue<TInput>> | undefined
Параметры
requirement(input: TInput) => MaybePromise<boolean>messageTMessage
Пояснение
С помощью checkAsync можно свободно проверять входные данные и возвращать true, если они действительны, или false в противном случае. Если входные данные не соответствуют вашему requirement, можно использовать message, чтобы настроить сообщение об ошибке.
Возвращает
ActionCheckActionAsync<TInput, TMessage>
Примеры
В следующих примерах показано, как можно использовать checkAsync.
Схема элемента корзины
Схема для проверки объекта элемента корзины.
import { getProductItem } from '~/api';
const CartItemSchema = v.pipeAsync(
v.object({
itemId: v.pipe(v.string(), v.regex(/^[a-z0-9]{10}$/i)),
quantity: v.pipe(v.number(), v.minValue(1)),
}),
v.checkAsync(async (input) => {
const productItem = await getProductItem(input.itemId);
return productItem?.quantity >= input.quantity;
}, 'The required quantity is greater than available.')
);
Связанные материалы
Следующие API можно комбинировать с checkAsync.
Схемы
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
Утилиты
Асинхронные
arrayAsync, awaitAsync, customAsync, exactOptionalAsync, intersectAsync, lazyAsync, looseObjectAsync, looseTupleAsync, mapAsync, nonNullableAsync, nonNullishAsync, nonOptionalAsync, nullableAsync, nullishAsync, objectAsync, objectWithRestAsync, optionalAsync, pipeAsync, recordAsync, setAsync, strictObjectAsync, strictTupleAsync, tupleAsync, tupleWithRestAsync, unionAsync, variantAsync
© Fabian Hiller
Licensed under the MIT License.
https://valibot.dev/api/checkAsync/