AZ Tools

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[];
}

使用方法

  1. 粘贴 JSON 样本。
  2. 设置根类型名并选择 interface 或 type。
  3. 选择数组处理——Merge(更安全)或 First(更快)。
  4. 复制生成的 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'。

相关工具