JSON para TypeScript

Converta um objeto JSON para interfaces TypeScript. Manipula objetos aninhados, arrays, propriedades opcionais e tipos de união.

Como Usar JSON para TypeScript

  1. 1Cole seu objeto JSON ou resposta de API.
  2. 2Digite um nome para a interface raiz.
  3. 3Clique em Converter para gerar interfaces TypeScript.
  4. 4Copie o código TypeScript gerado.
ZenovayAnalytics

Analytics feito para fundadores.

  • Acompanhamento de visitantes em tempo real
  • Privacidade em primeiro lugar, sem banner de cookies
  • Configurado em dois minutos
Conheça o Zenovay

Perguntas Frequentes

Quais recursos TypeScript isso gera?
O conversor gera declarações de interface TypeScript para objetos, com tipos corretos para string, number, boolean, null, undefined e Date (strings de data ISO). Objetos aninhados produzem interfaces separadas. Arrays produzem tipos T[]. Arrays mistos produzem tipos de união (string | number)[]. Propriedades que são null na amostra obtêm T | null. Propriedades opcionais (?) não são inferidas de uma única amostra — use várias amostras para melhor inferência.
Como os objetos aninhados são tratados?
Cada objeto aninhado obtém sua própria interface nomeada. Por exemplo, {"user": {"name": "Alice"}} produz interface User { name: string; } e interface Root { user: User; }. Interfaces são nomeadas convertendo a chave de propriedade em PascalCase. Objetos profundamente aninhados produzem uma hierarquia completa de interfaces. Arrays de objetos produzem uma interface para o tipo de item, referenciada como ItemType[].
Qual é a diferença entre interface e type em TypeScript?
interface e type são amplamente intercambiáveis para formas de objetos. Interfaces suportam mesclagem de declaração (múltiplas declarações com o mesmo nome se mesclam) e podem ser estendidas com extends. aliases type podem expressar tipos de união, tuplas e tipos mapeados que interfaces não podem. Para formas de resposta de API, ambos funcionam. A convenção é usar interface para formas de objeto (objetos que você instanciará ou estenderá) e type para aliases, uniões e tipos calculados.
Como devo lidar com respostas de API que variam entre chamadas?
O conversor infere tipos de uma amostra. Se um campo às vezes é string e às vezes é number entre chamadas, você precisa adicionar o tipo de união manualmente: field: string | number. Para campos anuláveis, adicione | null. Para campos ausentes/opcionais, adicione o modificador ?: field?: string. Execute o conversor em várias respostas de API e mescle as interfaces manualmente para tipos de qualidade de produção.
Como uso essas interfaces no meu projeto TypeScript?
Copie as interfaces geradas para um arquivo .ts ou .d.ts (por exemplo, api-types.ts). Importe-as onde necessário: import type { Root } from "./api-types";. Digite sua resposta fetch: const data = await response.json() as Root; ou com zod para validação em tempo de execução: const schema = z.object({...}); const data = schema.parse(await response.json()). Para projetos grandes, considere ferramentas como quicktype ou openapi-typescript para geração de tipo automatizada a partir de esquemas.