guard
Создает действие преобразования guard.
const Action = v.guard<TInput, TGuard, TMessage>(requirement, message);
Обобщения
TInputextends anyTGuardextends GuardFunction<TInput>TMessageextends ErrorMessage<GuardIssue<TInput, TGuard>> | undefined
Параметры
requirementTGuardmessageTMessage
Пояснение
С помощью guard можно свободно проверять входные данные и возвращать true, если они допустимы, или false в противном случае. Если входные данные не соответствуют вашему requirement, можно использовать message, чтобы настроить сообщение об ошибке.
Это особенно полезно, если у вас уже есть предикат типа (например, из внешней библиотеки).
guardполезен для сужения известных типов. Для проверки совершенно неизвестных значений рассмотритеcustom.
Возвращает
ActionGuardAction<TInput, TGuard, TMessage>
Примеры
В следующих примерах показано, как можно использовать guard.
Схема строки пикселей
Схема для проверки строки пикселей.
const PixelStringSchema = v.pipe(
v.string(),
v.guard((input): input is `${number}px` => /^\d+px$/.test(input))
);
Схема ошибки Axios
Схема для проверки объекта, содержащего ошибку Axios.
import { isAxiosError } from 'axios';
const AxiosErrorSchema = v.object({
error: v.pipe(
v.instance(Error),
v.guard(isAxiosError, 'The error is not an Axios error.')
),
});
Связанные API
Следующие API можно комбинировать с guard.
Схемы
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
Методы
Утилиты
© Fabian Hiller
Licensed under the MIT License.
https://valibot.dev/api/guard/