JSON 怎么快速转 TypeScript 类型?
接一个返回 JSON 的接口,最烦的就是手写 interface。把 JSON 粘进工具,点「生成 TS 类型」就能拿到现成的类型定义。
一个例子
{
"id": 1024,
"name": "Ada Lovelace",
"active": true,
"tags": ["math", "computing"],
"profile": { "city": "London", "followers": 1200 }
}
点「生成 TS 类型」得到:
export interface Root {
id: number;
name: string;
active: boolean;
tags: string[];
profile: {
city: string;
followers: number;
};
}
类型推导规则
integer和number统一成number。- 数组
[1,2,3]推导成number[];空数组[]推导成any[](因为无从判断元素类型)。 - 嵌套对象递归展开成带缩进的内联对象类型。
常见坑
- 字段缺失:示例只覆盖你给的那条数据。如果接口有时会返回
email,但样例没有,类型里就不会出现它。建议用一份尽量完整的样例。 - 可空字段:工具按「看到的」生成。若某个字段有时为
null,可在样例里写成null,类型会反映出来。 - 命名:默认根类型叫
Root,记得改成你的业务名(如User)。