为什么需要 JSON 转 TypeScript 类型
在 TypeScript 项目中,接口返回的数据如果没有类型定义,就只能用 any,等于放弃了类型检查带来的全部好处:编辑器没有自动补全、字段改名不会报错、运行期才暴露出拼写问题。手写 interface 又非常繁琐,尤其是接口字段多、嵌套深的时候,既要保证类型正确,又要不漏字段,还容易和接口文档不一致。
把接口文档或抓包里的 JSON 示例直接转换成 TypeScript 类型,是最省事也最不容易出错的方案。比如下面这段接口返回:
{
"id": 1024,
"name": "张三",
"roles": ["admin", "editor"],
"profile": {
"city": "上海",
"active": true
},
"tags": null
}
转换后可以得到完整、可读的类型定义:
interface ApiResult {
id: number;
name: string;
roles: string[];
profile: Profile;
tags: null;
}
之后开发时就能享受到完整的类型提示:字段拼错、类型用错都会在编译阶段被拦截,接口联调效率明显提升。
在线生成 TypeScript 类型的步骤
- 打开 JSON 转 TypeScript 工具,把接口返回的 JSON 示例粘贴到输入框。
- 根据需要选择生成风格:
interface或type,并决定是否把可空字段标记为可选属性。 - 点击「转换」,右侧立即生成类型定义;如果 JSON 不合法,会提示错误位置。
- 点击「复制」把结果粘贴到项目里,再按业务补充注释或调整联合类型即可。
整个过程在浏览器本地完成,不依赖任何后端服务,粘贴含敏感字段的返回数据也不用担心。
核心功能一览
一键转换
粘贴 JSON 即可生成 TypeScript interface / type,支持 2 空格、4 空格等缩进风格。
深层嵌套
递归处理对象、数组、数组套对象等结构,多层数据自动拆分为命名子类型。
可选字段
可把值为 null 的字段转换为可选属性(?),更贴合接口实际返回。
本地处理
纯浏览器端解析,数据不上传服务器,适合处理敏感接口数据。
常用字段处理规则
| JSON 示例值 | 生成的 TS 类型 | 说明 |
|---|---|---|
"abc" | string | 字符串 |
1024 | number | 数字 |
true / false | boolean | 布尔值 |
[1, 2, 3] | number[] | 数组按元素类型推导 |
{"a": 1} | Nested | 嵌套对象生成子类型 |
null | null 或可选属性 | 按选项决定是否转成 ? |
常见使用场景
- 接口联调:拿到后端返回示例,直接生成前端类型定义,减少来回沟通。
- 类型化配置:把 JSON 配置文件转为 TS 类型,享受补全与校验。
- 迁移遗留项目:给原本用
any的地方补齐类型,逐步提升类型覆盖率。 - 编写类型测试:用真实数据生成类型,验证类型与数据结构的一致性。
