Spec-Zone.ru › Valibot

flavor

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

const Action = v.flavor<TInput, TName>(name);

Обобщения

  • TInput extends any
  • TName extends FlavorName

Параметры

  • name TName

Пояснение

flavor — менее строгая версия brand, которая позволяет добавить flavor к выходному типу схемы с помощью name. Данные считаются допустимыми, если их тип не имеет flavor или они были проверены схемой с таким же flavor.

flavor также можно использовать как хак для TypeScript DX, чтобы улучшить автодополнение в редакторе, показывая только литеральные типы, но при этом разрешая передавать корневой тип без flavor.

Возвращает

  • Action FlavorAction<TInput, TName>

Примеры

В следующих примерах показано, как можно использовать flavor.

Схемы ID с flavor

Схема, гарантирующая, что разные типы ID не будут перепутаны.

// Create user ID and order ID schema
const UserIdSchema = v.pipe(v.string(), v.flavor('UserId'));
const OrderIdSchema = v.pipe(v.string(), v.flavor('OrderId'));

// Infer output types of both schemas
type UserId = v.InferOutput<typeof UserIdSchema>;
type OrderId = v.InferOutput<typeof OrderIdSchema>;

// This works because output is flavored
const userId: UserId = v.parse(UserIdSchema, 'c28443ef...');
const orderId: OrderId = v.parse(OrderIdSchema, '4b717520...');

// You can also use unflavored strings
const newUserId1: UserId = '2d80cd94...';

// But this will result in a type error
const newUserId2: UserId = orderId;

Связанные API

Следующие API можно комбинировать с flavor.

Схемы

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

Методы

pipe

Утилиты

isOfKind, isOfType

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

Spec-Zone.ru

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