主要观点:Standard Schema 是由 JavaScript 和 TypeScript 模式库实现的通用接口,旨在让生态系统工具更易接受用户定义的类型验证器,无需为每个支持的库编写自定义逻辑或适配器,且无额外运行时依赖,可一次集成,随处验证。
关键信息:
- 由 Zod、Valibot 和 ArkType 的创建者设计,其规范由单个 TypeScript 接口
StandardSchemaV1
组成,库可复制粘贴代码实现该规范。 - 满足支持运行时验证、静态类型推断、最小化、避免 API 冲突、不影响开发体验(DX)等设计目标。
- 已有 Zod、Valibot 等众多库实现该规范,也有 tRPC 等工具接受符合该规范的模式。
重要细节: StandardSchemaV1
接口包含多种类型定义,如Result
、SuccessResult
、FailureResult
等,用于标准化验证结果。- 实现该规范的库需添加
~standard
属性到验证器对象/实例中,可通过extends
/implements
确保与接口静态一致,避免返回Promise
除非必要。 - 第三方库和框架可复制粘贴规范文件或安装
@standard-schema/spec
包来接受标准模式,有相关示例函数展示如何使用。 - FAQ 中解答了是否需添加
@standard-schema/spec
为依赖、为何用~
前缀、为何不用符号键、如何只允许同步验证等问题。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。