Spec-Zone.ru › Valibot

guard

Создает действие преобразования guard.

const Action = v.guard<TInput, TGuard, TMessage>(requirement, message);

Обобщения

  • TInput extends any
  • TGuard extends GuardFunction<TInput>
  • TMessage extends ErrorMessage<GuardIssue<TInput, TGuard>> | undefined

Параметры

  • requirement TGuard
  • message TMessage

Пояснение

С помощью guard можно свободно проверять входные данные и возвращать true, если они допустимы, или false в противном случае. Если входные данные не соответствуют вашему requirement, можно использовать message, чтобы настроить сообщение об ошибке.

Это особенно полезно, если у вас уже есть предикат типа (например, из внешней библиотеки).

guard полезен для сужения известных типов. Для проверки совершенно неизвестных значений рассмотрите custom.

Возвращает

  • Action GuardAction<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

Методы

forward, pipe

Утилиты

isOfKind, isOfType

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

Spec-Zone.ru

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