关于 typebox
这是一份面向 TypeScript 项目的 TypeBox 使用技能文档,说明如何定义模式、选择验证方式,以及何时改用其他模式库。
主要功能
- 01定义可移植的模式对象
- 02使用 Value.Check() 验证
- 03编译高性能验证器
- 04模式边界使用指南
适用场景
- 01定义 workspace 表模式
- 02执行一次性值验证
- 03用编译后的模式反复验证
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ epicenterhq/ epicenter --skill typebox安装后在 Claude Code 中输入/typebox确认已加载。
详细介绍
TypeBox
包名称
请使用 typebox,而不是 @sinclair/typebox。@sinclair/typebox 包已弃用。
// Correct
import { Type } from 'typebox';
import { Compile } from 'typebox/compile';
import { Value } from 'typebox/value';
// Wrong - deprecated
import { Type } from '@sinclair/typebox';
如何选择
| 需求 | 使用 |
|---|---|
| 定义架构 | 使用 Type.* 的 typebox |
| 一次性验证 | typebox/value 中的 Value.Check() |
| 高性能验证 | typebox/compile 中的 Compile() |
TypeBox 架构是可移植的、形似 JSON Schema 的数据。如果 TypeBox 边界需要验证,请直接验证 TypeBox 架构:
import { Type } from 'typebox';
import { Compile } from 'typebox/compile';
import { Value } from 'typebox/value';
const schema = Type.Object({ name: Type.String(), age: Type.Number() });
Value.Check(schema, value); // boolean
const validator = Compile(schema);
validator.Check(value); // boolean
validator.Parse(value); // throws or returns typed value
Standard Schema 边界
TypeBox 未实现 Standard Schema。不要编写依赖 schema['~standard'] 的 TypeBox 代码。如果边界接受 Standard Schema,优先使用 Arktype 或其他原生实现该标准的架构库。如果边界持有 TypeBox 架构,请保持边界使用原生 TypeBox,并将 JSON Schema 作为可移植表示形式。
仓库策略
对于可移植的架构对象,请使用 TypeBox:工作区表、kv、字段、操作、MCP 输入、清单,以及其他需要 JSON Schema 形状、元数据、Static<> 或架构检查的场景。对于本地运行时验证、请求解析、环境变量/配置解析、持久化 UI 状态、转换以及带品牌的领域值,请使用 Arktype。
参考资料
评论
支持 Markdown