跳到正文
马克工具箱

JSON 转 TypeScript

把一段 JSON 示例(接口返回、配置文件、测试数据)转成可以直接粘贴进代码的 TypeScript 类型。嵌套对象会生成独立的命名类型,数组元素之间的差异会变成可选字段或联合类型。

在浏览器本地运行,输入的内容和文件都不会上传

使用步骤

  1. 粘贴 JSON 示例,或点「加载示例」。
  2. 设置根类型的名称。
  3. 选择生成 interface 还是 type。
  4. 复制或下载生成的类型。

参数说明

根类型名称
顶层类型的名称,例如 User、ApiResponse。嵌套类型按键名命名,address 生成 Address,posts 的元素生成 Post。
用 type 代替 interface
生成 type User = { … } 形式的类型别名。对普通数据来说两者效果相同。

使用示例

{"id": 1, "tags": ["a"], "owner": {"name": "Ada"}} 会生成:

export interface Owner {
  name: string;
}

export interface Root {
  id: number;
  tags: string[];
  owner: Owner;
}

常见问题

对象数组怎么处理?

所有元素合并成一个类型。只在部分元素中出现的键变成可选(key?),有时为 null 的值变成 string | null 这样的联合类型。

为什么有的字段是 unknown?

示例中这个字段只有 null,推断不出真实类型。请手动改成正确的类型,或换一份该字段有值的示例。

整数和小数会区分吗?

TypeScript 中都是 number。Go、Rust 和 Python 的输出会区分整数和小数。

JSON 数据会上传吗?

不会。类型在浏览器中生成,包含真实数据的接口返回也不会离开你的设备。

隐私说明

本工具完全在浏览器中运行,文件和文本都在你的设备上处理,不会上传到我们的服务器。

相关工具