mcpField
T
typebox

typebox

github.com/epicenterhq开发4.8k76 次安装2 周前更新
代码仓库

关于 typebox

这是一份面向 TypeScript 项目的 TypeBox 使用技能文档,说明如何定义模式、选择验证方式,以及何时改用其他模式库。

主要功能

  1. 01定义可移植的模式对象
  2. 02使用 Value.Check() 验证
  3. 03编译高性能验证器
  4. 04模式边界使用指南

适用场景

  1. 01定义 workspace 表模式
  2. 02执行一次性值验证
  3. 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