TypeScript 转模拟 JSON 生成器
粘贴一个 TypeScript 接口,即可在你的浏览器中生成符合它的逼真模拟 JSON。你的代码留在你的设备上。
你的 TypeScript 接口在浏览器本地被解析和模拟,绝不会被上传,而且生成的数据是随机的示例数据,并非真实记录。
已经有 JSON 了?用 JSON 转 TypeScript 把它变成 TypeScript。
关于 TypeScript 转模拟 JSON
这款 TypeScript 转模拟数据工具会接收你粘贴的接口或类型别名,生成与其形状匹配的逼真模拟 JSON。它读取类型结构,并为每个属性挑选一个假值,同时依据字段名和声明的类型进行选择:email 字段会变成一个看起来合理的邮箱,name 会变成全名,createdAt 会变成 ISO 日期,id 会变成 UUID 或数字,普通字符串则变成单词。嵌套接口、内联对象、数组、字符串字面量联合、可选成员以及 Date 都能处理,你还能控制生成多少个对象以及可选字段是否出现。可用它为测试播种数据、给 API 响应做原型,或用示例数据填满 UI,而不必手写测试夹具。一切都在你的浏览器中运行,因此你粘贴的接口在本地处理,绝不会离开你的设备。
功能特性
- 读取任意 TypeScript 接口或类型别名,并推断出匹配的 JSON 形状
- 按字段名选择假值——email、name、phone、url、uuid、date 等
- 当没有名称提示匹配时,回退到声明的类型(string、number、boolean、null)
- 递归进入嵌套接口、内联对象类型和被引用的类型
- 把像 tags: string[] 这样的数组字段展开为若干个生成项
- 为像 'admin' | 'editor' 这样的字符串字面量联合挑选其中一个分支
- 可开关可选(prop?:)字段,并生成 1 个对象或多个对象的数组
- 一键复制 JSON,或将其下载为 .json 文件
如何使用 TypeScript 转模拟 JSON
- 把一个 TypeScript 接口或类型别名粘贴到输入框中。
- 设置要生成多少个对象,以及是否包含可选字段。
- 如果你粘贴了多个接口,选择用哪一个作为根。
- 在右侧查看生成的模拟 JSON,然后复制它或下载一个 .json 文件。
示例
输入
interface User {
id: number;
fullName: string;
email: string;
role: 'admin' | 'editor' | 'viewer';
tags: string[];
}
输出
{
"id": 4821,
"fullName": "Ada Lovelace",
"email": "ada.lovelace@example.com",
"role": "editor",
"tags": [
"design",
"api"
]
}
字段名引导假值的选取,而联合字段则解析为它的其中一个成员。
常见错误与故障排除
- 输出显示「No TypeScript interface or type alias found」。 — 请粘贴一个真正的声明,例如 interface User { id: number } 或 type User = { id: number };一个裸值或表达式没有可供模拟的形状。
- 被引用的类型输出成了一个普通单词,而不是嵌套对象。 — 把被引用的接口包含在同一次粘贴中。只有粘贴源中定义的类型才能被展开;未知或导入的类型会回退为字符串。
- 枚举或复杂的映射类型没有按你预期的方式展开。 — 把枚举转换成字符串字面量联合(例如 'a' | 'b'),以便能挑选一个成员;不常见的构造会回退为一个看起来合理的字符串。
- 可选字段总是出现(或从不出现)。 — 使用「可选项」开关。关闭时,每个 prop?: 成员都会被省略;开启时,可选成员总会被包含。
常见问题
- TypeScript 字段类型是如何转成假值的?
- 每个属性首先按名称匹配——email、name、phone、url、uuid、createdAt 等提示会映射到对应的假数据——否则按其声明的类型匹配,因此 string、number、boolean 和 null 各自都会得到一个合理的生成值。
- 它支持嵌套接口、数组和联合吗?
- 支持。嵌套接口和内联对象类型会被递归展开,像 string[] 这样的数组类型会变成若干个生成项,而像 'admin' | 'editor' 这样的字符串字面量联合会解析为它的其中一个成员。
- 我可以一次性生成一个包含多个对象的数组吗?
- 可以。把对象数量设为大于 1,工具就会返回一个包含那么多生成对象的 JSON 数组;数量为 1 时则返回单个对象而非数组。
- 可选属性是如何处理的?
- 用 prop?: 标记为可选的成员由「可选项」开关控制。开启它以总是包含它们,或关闭它以从输出中省略每个可选字段。
- 遇到 Date 字段或 ISO 时间戳会怎样?
- Date 类型,以及像 createdAt、updatedAt 或 timestamp 这样的名称提示,会产生一个 ISO 8601 日期字符串,让模拟 JSON 保持有效且易于解析。
- 我粘贴的 TypeScript 会被发送到任何地方吗?
- 不会。接口的解析和模拟 JSON 的生成完全在你的浏览器中进行,因此你粘贴的代码在本地处理,绝不会离开你的设备。
相关工具
全部 ArrayKit 工具