Spec-Zone.ru › Valibot

Ментальная модель

Концептуальная модель Valibot в основном состоит из схем, методов и действий. Поскольку каждая функциональность импортируется как отдельная функция, важно понять эту концепцию: она значительно упрощает работу с модульным API.

Справочник API дает обзор всех схем, методов и действий. На странице справочника для каждого из них также перечислены другие связанные схемы, методы и действия, чтобы их было проще найти.

Схемы

Схемы — отправная точка для работы с Valibot. Они позволяют проверять определенный тип данных, например строку, объект или дату. Каждая схема независима. Их можно повторно использовать или вкладывать друг в друга, чтобы описывать более сложные структуры данных.

import * as v from 'valibot';

const BookSchema = v.object({
  title: v.string(),
  numberOfPages: v.number(),
  publication: v.date(),
  tags: v.array(v.string()),
});

Каждая функция схемы возвращает доступный объект, содержащий все ее свойства. Однако в большинстве случаев вам не нужно обращаться к ним напрямую. Вместо этого используйте методы, которые помогают изменять схему или работать с ней.

Методы

Методы помогают изменять схему или работать с ней. Например, метод parse позволяет разбирать неизвестные данные на основе схемы. При использовании метода всегда передавайте схему первым аргументом.

import * as v from 'valibot';

const BookSchema = v.object({…});

function createBook(data: unknown) {
  return v.parse(BookSchema, data);
}

Большинство методов используются со схемами. Однако есть и исключения, например forward и flatten, которые используются с действиями или проблемами.

Действия

Действия позволяют дополнительно проверять, преобразовывать или аннотировать определенный тип данных. Они используются только вместе с методом pipe, который расширяет функциональность схемы, добавляя дополнительные правила проверки, преобразования и метаданных. Например, следующую схему можно использовать, чтобы удалить пробелы в начале и конце строки и проверить, является ли она корректным адресом электронной почты.

import * as v from 'valibot';

const EmailSchema = v.pipe(v.string(), v.trim(), v.email());

Действия очень мощные. Практически нет ограничений на то, что с их помощью можно делать. Помимо проверок и преобразований, конвейеры могут содержать метаданные, заданные с помощью таких действий, как title, description, examples и metadata. Это может быть полезно для документации, инструментов ИИ и других интеграций. Действия также могут изменять тип выходных данных с помощью таких преобразований, как readonly и brand.

© Fabian Hiller
Licensed under the MIT License.
https://valibot.dev/guides/mental-model/

Spec-Zone.ru

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