JSON 怎么转 TypeScript?生成后还要检查什么?
在 KitLumi JSON 转 TypeScript 工具中粘贴有代表性的 JSON,选择 Interfaces 或 Type aliases,然后点击 Convert。生成结果是静态类型的起点,单个样本无法说明 API 的全部情况,生成的声明也不会验证运行时响应。当前工具界面为英文。
具体怎么操作?
- 准备一个有代表性的 JSON 对象或数组,删除示例中不需要的凭证和个人信息。
- 在工具中选择 Interfaces 或 Type aliases,点击 Convert。
- 检查 Root 和嵌套声明,根据真实接口约定修正字段后,再复制或下载结果。
一份 JSON 样本能推断出什么?
下面的样本包含数字 id、字符串 name 和布尔值 active。但这只反映一次响应;其他合法响应可能省略 name,或将它设为 null。把生成结果用于项目之前,应当对照 API 文档。
{"id":42,"name":"Ada","active":true}
interface Root {
id: number;
name: string;
active: boolean;
}
type Payload = Root;可选字段、null 和数组应该怎么检查?
如果接口允许不返回 name,应检查是否需要写成 name?: string;如果允许显式返回 null,应检查是否需要 name: string | null。当前生成器使用数组首项推断元素类型,空数组不能提供元素结构。请根据接口约定逐一检查可能出现的变体。
生成 interface 后就能校验接口数据吗?
不能。TypeScript 声明用于编译时的类型检查;如果业务需要验证网络响应,仍需加入运行时校验。接口规范或运行时 schema 才能定义完整的数据约束。
遇到问题怎么办?
| 问题 | 处理方法 |
|---|---|
| JSON 无法解析 | 用 JSON 格式化工具检查引号、逗号和括号。JavaScript 对象字面量不一定是合法 JSON。 |
| 空数组无法推断结构 | 使用具有代表性的非空样本,再与完整接口规范核对。 |
| 可能缺失的字段被生成为必填 | 检查其他响应或 API 文档,确认允许省略后再添加可选标记。 |
| 很长的数字 ID 发生变化 | 如果接口定义 ID 为字符串,应从数据源使用带引号的字符串。此生成器使用普通 JSON 解析,超大数值可能已经被舍入。 |
常见问题
JSON 会上传吗?
不会。解析和类型生成都在当前浏览器标签页执行,输入不会放进页面地址。
应该选 interface 还是 type?
两者都能表达对象结构,按项目习惯选择并检查结果即可。两种选项都不会自动增加运行时验证。
参考资料
首次发布:根据当前工具界面核对步骤,补充示例和已知限制。