AZ Tools

JSON → Interface TypeScript

Desenvolvimento

Cole uma amostra JSON (resposta de API, config, fixture) e receba uma interface TypeScript pronta para colar. Objetos aninhados viram interfaces próprias com o nome da chave pai (em PascalCase), arrays inferem o tipo do elemento, primitivos continuam primitivos. Modo merge percorre cada elemento do array para produzir uniões; modo só-primeiro infere do índice zero (mais rápido para arrays grandes).

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

Como usar

  1. Cole uma amostra JSON.
  2. Defina o nome do tipo raiz e escolha interface ou type-alias.
  3. Escolha o tratamento de arrays — merge (mais seguro) ou primeiro (mais rápido).
  4. Copie o TypeScript gerado.

Perguntas frequentes

Por que meu array de users gera uma interface User?
Chaves plurais (users, posts, tags) são singularizadas para o nome do tipo aninhado. 'posts': [...] gera uma interface Post, usada como Post[].
O que merge vs primeiro fazem?
Merge percorre todos os elementos do array unindo os tipos de campos, então campos 'opcionais' que faltam em alguns elementos viram 'field?'. Primeiro olha apenas o elemento zero — rápido mas perde uniões e opcionalidade.
Datas são inferidas como Date?
Não — TypeScript não distingue uma string de data de outra string em tempo de compilação. A ferramenta mantém como 'string' para a saída ser correta no strict.
E null?
null vira tipo próprio. Se um campo é às vezes null no modo merge, você obtém 'field: string | null' em vez de 'field: string'.

Ferramentas relacionadas