标准模式

主要观点:Standard Schema 是由 JavaScript 和 TypeScript 模式库实现的通用接口,旨在让生态系统工具更易接受用户定义的类型验证器,无需为每个支持的库编写自定义逻辑或适配器,且无额外运行时依赖,可一次集成,随处验证。
关键信息

  • 由 Zod、Valibot 和 ArkType 的创建者设计,其规范由单个 TypeScript 接口StandardSchemaV1组成,库可复制粘贴代码实现该规范。
  • 满足支持运行时验证、静态类型推断、最小化、避免 API 冲突、不影响开发体验(DX)等设计目标。
  • 已有 Zod、Valibot 等众多库实现该规范,也有 tRPC 等工具接受符合该规范的模式。
    重要细节
  • StandardSchemaV1接口包含多种类型定义,如ResultSuccessResultFailureResult等,用于标准化验证结果。
  • 实现该规范的库需添加~standard属性到验证器对象/实例中,可通过extends/implements确保与接口静态一致,避免返回Promise除非必要。
  • 第三方库和框架可复制粘贴规范文件或安装@standard-schema/spec包来接受标准模式,有相关示例函数展示如何使用。
  • FAQ 中解答了是否需添加@standard-schema/spec为依赖、为何用~前缀、为何不用符号键、如何只允许同步验证等问题。
阅读 5
0 条评论