JSON → TypeScript 接口
开发
粘贴 JSON 样本(API 响应、配置、Fixture)即可得到可直接粘贴使用的 TypeScript 接口。嵌套对象按父级键名(PascalCase)生成独立接口,数组推断元素类型,原始类型保持不变。Merge 模式遍历数组所有元素生成联合类型;First 模式只看第 0 个元素(适合超大数组、速度更快)。
—
TypeScript
export interface Post {
id: number;
title: string;
tags: string[];
}
export interface Address {
city: string;
zip: string;
}
export interface Root {
id: number;
name: string;
active: boolean;
joinedAt: string;
roles: string[];
address: Address;
posts: Post[];
}使用方法
- 粘贴 JSON 样本。
- 设置根类型名并选择 interface 或 type。
- 选择数组处理——Merge(更安全)或 First(更快)。
- 复制生成的 TypeScript。
常见问题
- 为什么 users 数组生成 User 接口?
- 复数键(users、posts、tags)会单数化作为嵌套类型名。'posts': [...] 会生成 Post 接口,用作 Post[]。
- Merge 与 First 区别?
- Merge 遍历数组所有元素并把字段类型合并成联合类型,某些元素缺失的字段会变成 'field?'。First 只看第 0 个元素——更快,但可能漏掉联合类型与可选标记。
- 日期会被推断为 Date 吗?
- 不会——编译期无法区分日期字符串与普通字符串。工具保持为 'string' 以确保 strict 模式下正确。
- null 呢?
- null 独立为一种类型。Merge 模式下若某些元素该字段为 null,会生成 'field: string | null' 而不是 'field: string'。