0
· FRONTEND-2026-RADAR · 2026.05.05 · 9 MIN ·

Standard Schema 1.0:2026 最重要的『看不见的进步』

Zod / Valibot / ArkType 三家维护者联合制定 ~60 行 TS 接口,消灭 resolver 矩阵时代。中文解读 + 译者点评。 · by fancyoung
AI · HERO seed:3520260505 Zod / Valibot / ArkType 三家维护者联合制定 ~60 行 TS 接口,消灭 resolver 矩阵时代。中文解读 + 译者点评。
FIG.00 — cover · ai-generated · placeholder

影响力:Zod / Valibot / ArkType 三家维护者联合制定 ~60 行 TS 接口,消灭 resolver 矩阵时代干活密度:🔵 协议级 + 🟢 干活级 核心承诺:一次写 schema,所有 form / router / RPC 库通用

🔥 影响力卡片

  • 起草人:Colin McDonnell(Zod)+ Fabian Hiller(Valibot)+ David Blass(Arktype)
  • 1.0 发布:2025-01
  • 协议本质:@standard-schema/spec,~60 行 TS interface,通过 ~standard 属性暴露
  • 已采纳:Zod 3.24+/4、Valibot 1+、Arktype 2+、Effect Schema、TanStack Form、TanStack Router、tRPC v11、Hono sValidator、oRPC、Conform(转接中)、Next.js Server Actions(讨论中)

🎯 为什么必读

过去 5 年前端的”schema validation”赛道有三股力量并跑(Zod / Yup / Joi → Zod / Valibot / Arktype),所有 form / router / RPC 库都要为每家写 resolver(@hookform/resolvers/zod / @hookform/resolvers/yup / …),库锁定库。

Standard Schema 把这一层抽出来标准化 —— 任何实现 ~standard 的库都被消费方一视同仁。意味着选 Valibot 不再是”要重写 form 代码”的决定;选 ArkType 不再是”生态太小”的顾虑。

一句话总结

三家 schema 库联合定义了一个最小通用接口,让上游消费库(form / router / RPC)与下游实现库解耦 —— resolver 矩阵时代终结。

💎 金句墙

“a common interface for TypeScript validation libraries.” “TypeScript 验证库的通用接口。” —— standardschema.dev 主页副标。译者点评:“common interface” 选词很克制 —— 不是 “standard”(垄断意味),不是 “spec”(强制意味),是 “common interface”(共识意味)。这反映了三家维护者协作而非竞争的姿态

“You can write your code once and it will work with any compliant schema library.” “你写一次代码,它就能与任何兼容的 schema 库一起工作。” —— 译者点评:消费方视角的最大卖点。tRPC v11 / Hono / TanStack Form 已经在做的事情,以前需要为每家库写 adapter,现在零适配

📋 核心精读

1. 协议本质 — ~60 行 TS

// @standard-schema/spec
interface StandardSchemaV1<Input = unknown, Output = Input> {
  '~standard': {
    version: 1;
    vendor: string;        // 'zod' / 'valibot' / 'arktype'
    validate: (value: unknown) =>
      | { value: Output }
      | { issues: ReadonlyArray<{ message: string; path?: PropertyKey[] }> }
      | Promise<unknown>;
    types?: { input: Input; output: Output };
  };
}

🟢 译者点评:整个 spec 就这一个 interface。维护成本极低,因此三家维护者愿意承诺。任何想加入的 schema 库实现 ~standard 字段即可。

2. 消费方零适配示例

import type { StandardSchemaV1 } from "@standard-schema/spec";

// 上游消费方:不依赖任何具体 schema 库
function validate<S extends StandardSchemaV1>(schema: S, value: unknown) {
  return schema["~standard"].validate(value);
}

// 用任何一家
import { z } from 'zod';
import * as v from 'valibot';
import { type } from 'arktype';

validate(z.object({ name: z.string() }), { name: 'a' });
validate(v.object({ name: v.string() }), { name: 'a' });
validate(type({ name: 'string' }), { name: 'a' });

🟢 译者点评:消费方代码只对 StandardSchemaV1 这个 interface 编程,完全不知道下游用的是哪家。这就是协议化的力量。

3. 三家选型表

体积(login form,esbuild)速度API 风格适合
Zod 417.7 kB / Mini 6.88 kBv4 比 v3 6-14×链式默认、生态最广
Valibot 11.37 kB函数式 + pipeEdge / Workers / 浏览器
ArkType 2.2最快(数量级)字符串 DSL大 schema / 性能敏感

🟢 译者点评:这三家定位错位互补。Zod 是默认(“不知道选什么用 Zod”);Valibot 走极小 bundle 路线(“Edge 必选”);ArkType 走 type-as-runtime 极致(“超大 schema 选它”)。Standard Schema 让你不需要二选一。

4. ⚠️ Zod 4 的反例(选型前自核)

社区实测(dev.to/dzakh):
- 简单 schema:Zod 4 比 v3 快 6-14×(官方宣传)
- 冷热路径 + 一次性 schema:Zod 4 比 v3 慢 17×(实测 case)

🟢 译者点评:Zod 4 性能宣传与社区”反例”并存。实战中:

  • 长生命周期 schema(每秒 N 次校验)→ v4 收益明显
  • 一次性 schema(冷启动 / 单次 lambda)→ v4 可能反而慢
  • 务必用自家代表性 schema benchmark 一次再决定

5. tRPC v11 / Hono / TanStack Form 的实战集成

// tRPC v11 — Standard Schema 第一公民
import { initTRPC } from '@trpc/server';
import { z } from 'zod';
const t = initTRPC.create();
t.procedure.input(z.object({ id: z.number() })).query(/* ... */)
// 换成 valibot.object({ id: valibot.number() }) 也行,API 不变

// Hono sValidator
import { sValidator } from 'hono/standard-validator';
import { type } from 'arktype';
app.post('/users', sValidator('json', type({ name: 'string' })), c => c.json({}))

// TanStack Form
const form = useForm({
  defaultValues: { email: '' },
  validators: { onChange: zodSchema },        // 或 valibotSchema 或 arktypeSchema
});

🟢 译者点评:消费侧完全统一。如果你之后想把 Zod 换成 Valibot 减小 edge bundle,只需要改 schema 文件,form / router / RPC 调用代码不动。

🟢 译者总评

  1. 现在就改的:用 RHF + @hookform/resolvers/zod 的代码,迁到 @hookform/resolvers/standard-schema(如果还没出,继续用 zod resolver,但未来切换零成本)
  2. Edge 项目优先:Workers / Cloudflare / Lambda 冷启动敏感场景,直接评估迁 Valibot(bundle 减 ~90%)
  3. 大 schema 项目:超过 100 个字段的复杂 schema,跑 ArkType benchmark,可能数量级提速
  4. Zod 不是输家:Zod 仍是生态最广的默认选择,但你不再被它锁住
  5. 配套读:Next.js 16 的 Server Actions 部分,以及 llms.txt + Diátaxis 对协议化的另一案例

🔗 调研来源