从 JSON 自动生成 TS interface 的 3 种方法
手写类型费时还容易漏字段。下面三种方式都能「从 JSON 反推类型」,按场景挑一个。
方法一:在线工具(最快)
打开 JSON 转 Schema 工具,切到「TypeScript」标签,粘贴即出 interface。好处是零安装、隐私(本地计算)、还能顺手看 Schema 对照。
方法二:命令行脚本
适合写进构建流程、把接口样例文件批量转类型。思路就是把转换逻辑跑在 Node 里:
import { genTs } from "./json2schema";
const json = JSON.parse(await Deno.readTextFile("sample.json"));
console.log(genTs(json, "User"));
核心逻辑就是 开源仓库 里的 genTs(),复制即用。
方法三:代码库 / 包
如果需要更细的控制(可选字段、联合类型),可以基于本仓库的 json2schema.ts 扩展,或接入 quicktype 这类成熟库。quicktype 支持更多目标语言,但本工具胜在轻量、无依赖、可完全本地化。
怎么选
- 临时接一个接口、想立刻看类型 → 在线工具。
- 想固化进 CI、每次接口变动重生成 → 命令行脚本。
- 要生成 Go / Python / Rust 等多种语言 → quicktype 等。