心智模型
Valibot 的心智模型主要分为 模式(schemas)、方法(methods)和 操作(actions)。由于每个功能都是作为一个独立的函数导入的,因此理解这个概念至关重要,因为它能让你更轻松地使用模块化 API 设计。

API 参考 为你提供了所有模式、方法和操作的绝佳概览。对于每一个,相应的参考页面还会列出其他相关的模式、方法和操作,以便更好地进行发现。
模式(Schemas)
模式是使用 Valibot 的起点。它们允许你验证 特定的数据类型,例如字符串、对象或日期。每个模式都是独立的。它们可以被重复使用,甚至可以嵌套以反映更复杂的数据结构。
import * as v from 'valibot';
const BookSchema = v.object({
title: v.string(),
numberOfPages: v.number(),
publication: v.date(),
tags: v.array(v.string()),
});
每个模式函数都会返回一个可访问的对象,其中包含其所有属性。然而,在大多数情况下,你不需要直接访问它们。相反,你会使用能帮助你修改或使用模式的方法。
方法(Methods)
方法帮助你 修改或使用模式。例如,parse 方法可以帮助你根据模式解析未知数据。当你使用方法时,你总是将模式作为第一个参数传递。
import * as v from 'valibot';
const BookSchema = v.object({/*...*/});
function createBook(data: unknown) {
return v.parse(BookSchema, data);
}
大多数方法都与模式一起使用。但是,也有一些例外,例如
forward和flatten,它们与操作或问题(issues)一起使用。
操作(Actions)
操作帮助你 进一步验证或转换 特定的数据类型。它们专门与 pipe 方法结合使用,pipe 方法通过添加额外的验证和转换规则来扩展模式的功能。例如,下面的模式可用于修剪字符串并检查它是否是有效的电子邮件地址。
import * as v from 'valibot';
const EmailSchema = v.pipe(v.string(), v.trim(), v.email());
操作非常强大。你几乎可以用它们做任何事情。除了上面示例中展示的基本验证和转换之外,它们还允许你使用 readonly 和 brand 等操作来修改输出类型。