Ferramentas
PT

Conversor de JSON para TypeScript

Cole um JSON de exemplo – como uma resposta de API – e receba interfaces TypeScript prontas para usar. Os tipos dos campos, as propriedades opcionais e os union types são deduzidos a partir dos dados.

JSON → TypeScript

JSON

TypeScript

Privado: seus dados são processados no próprio navegador e nunca são enviados a nenhum servidor.

Como gerar TypeScript a partir de JSON

  1. Cole um JSON de exemplo. Quanto mais itens os arrays tiverem, melhor será a detecção de campos opcionais e unions.
  2. Defina o nome do tipo raiz e escolha interface ou type, com ou sem export e readonly.
  3. Copie o código TypeScript para o seu projeto ou baixe-o como arquivo .ts.

Como os tipos TypeScript são deduzidos do JSON

JSONTypeScript
"Ada"string
42, 3.14number
trueboolean
null junto com outros valoresuma union como string | null
"address": {"city": "Paris"}uma interface Address separada
"users": [{"id": 1}]User[] – o nome do item fica no singular
uma chave ausente em alguns itens do arrayuma propriedade opcional key?:
[1, "a"](string | number)[]
[]unknown[]
{}Record<string, unknown>

Exemplo

O JSON {"id": 1, "name": "Ada", "tags": ["admin"], "manager": null} vira:

export interface Root { id: number; name: string; tags: string[]; manager: null; }

Renomeie Root para algo significativo, como User ou ApiResponse. Objetos aninhados com exatamente a mesma estrutura – um endereço de cobrança e um de entrega, por exemplo – compartilham uma única interface, e chaves que não são identificadores válidos ficam entre aspas, ex.: "first-name": string.

Perguntas frequentes

Interface ou type: qual escolher?

Para formatos de objeto, os dois se comportam da mesma forma. Interfaces podem ser estendidas e mescladas, enquanto aliases de type também podem descrever unions. Muitas equipes usam interfaces para objetos; siga o estilo do seu código.

Como os campos opcionais são detectados?

Objetos dentro do mesmo array são mesclados. Uma chave que falta em alguns deles vira opcional (key?:), e uma chave com valores de tipos diferentes vira uma union.

Isso valida os dados em tempo de execução?

Não. Os tipos do TypeScript desaparecem quando o código é executado. Para verificar dados recebidos, gere um JSON Schema a partir do mesmo exemplo com o nosso gerador de JSON Schema e valide os dados com uma biblioteca de schema.

Meu JSON é enviado para um servidor?

Não. Os tipos são gerados no seu navegador, então você pode colar com segurança respostas de APIs privadas.