使用说明与限制
从接口示例生成类型的步骤
- 粘贴一份合法 JSON,或导入 UTF-8 JSON 文件。对象、数组及标量均可作为根值,但 JavaScript 对象字面量、注释和尾随逗号不属于 JSON。
- 填写根类型名称,如
UserResponse。名称须以英文字母、下划线或$开头,不能使用class等保留字。 - 点击“处理”,复制结果到 TypeScript 项目,或下载
.ts文件;随后按接口文档核对必填性、可空性和业务枚举。
示例:数组里只出现过一次的字段
{"items":[{"id":1,"note":"示例"},{"id":2}]}使用默认根名称时生成:
export interface Root {
items: {
id: number;
note?: string;
}[];
}note? 表示样例数组中部分对象缺少这个字段,不表示字符串内容可以省略任意字符,也不等同于 note: string | null。
类型推断的规则
- 对象中的嵌套结构会继续展开;字段名如
user-name会加引号,避免生成非法标识符。 - 同一字段出现数字和字符串时生成联合类型,如
number | string;出现明确的null会纳入联合类型。 - 空数组没有足够样例,生成
unknown[]。根值不是普通非空对象时,可能生成export type,而不是interface。 - 仅凭
"2026-11-14"只能判断为字符串,不会生成Date;仅凭一个状态值也不会替你确定完整枚举。
怎样让结果更接近真实接口?
尽量提供多条有代表性的记录,包含缺失字段、空值和不同业务分支。此工具只生成编译期类型,不会验证运行时数据,也不会生成校验函数。类型嵌套最多 20 层;超大整数请在原始 JSON 中用字符串承载,避免精度损失。
文本长度上限为 1,048,576 个 UTF-16 编码单元,约相当于同数量的常见中英文字符;emoji 可能占两个或更多单元。支持文件导入的工具另有 1 MiB 文件大小上限,文件需为 UTF-8 编码。