正在准备工作区…
输入
输出
结果将显示在这里。
使用方法
- 粘贴文本、打开 UTF-8 文件,或试用 Sample。
- 选择输入与设置,然后运行工具,或开启自动运行。
- 检查结果后复制或下载。修改输入会使之前的结果失效。
JSON 转 TypeScript
根据 JSON Sample 生成 TypeScript interface 或 type 声明。
处理在浏览器本地完成,输入不会发送给 DevToolsy。
工作原理
嵌套对象会生成具名类型,数组中的对象会合并推导:缺少的属性设为可选,混合值生成联合类型,空数组使用 unknown[]。
输入
{"project":"DevToolsy","members":[{"name":"Ada","role":"developer"},{"name":"Lin","active":true}],"tags":["web","tools"]}输出
export interface Root {
project: string;
members: RootMembersItem[];
tags: string[];
}
export interface RootMembersItem {
name: string;
role?: string;
active?: boolean;
}
根据 JSON Sample 生成 TypeScript interface 或 type 声明。
选项与数据保真
可设置根类型名称、interface 或 type、readonly 及所有属性可选。字符串推导为 string,不生成字面量类型。
使用处理结果
单份 Sample 无法覆盖所有情况,请检查 null、缺失字段和数值精度,并另外加入运行时校验。
检查结果后复制或下载。修改输入会使之前的结果失效。
处理限制
每份 UTF-8 输入上限 1 MiB,输出上限 8 MiB。JSONPath 与 Schema 5 秒超时,其他工具 30 秒超时。
?
常见问题
如何推导嵌套对象与数组?
嵌套对象会生成具名类型,数组中的对象会合并推导:缺少的属性设为可选,混合值生成联合类型,空数组使用 unknown[]。
可以调整哪些 TypeScript 选项?
可设置根类型名称、interface 或 type、readonly 及所有属性可选。字符串推导为 string,不生成字面量类型。
生成的类型能校验后续 API 响应吗?
不能。单份 Sample 无法覆盖所有情况,请检查 null、缺失字段和数值精度,并另外加入运行时校验。
输入内容会上传吗?
处理在浏览器本地完成,输入不会发送给 DevToolsy。
可以打开本地文件吗?
UTF-8 输入最大 1 MiB · 输出最大 8 MiB