Gerador cron da AWS
Gerador cron
Contador de texto
JSON para CSV
CSV para JSON
Conversor de timestamp Unix
Gerador de UUID v4 e v7
JSON para TypeScript
Markdown para PDF
Base64
Imagens
JSON
Código QR
Senhas
Unidades
Hash
Cores
Ferramentas PDF
Editor de PDF
Codificador de URL
Conversor de Formato
Lorem Ipsum
Testador Regex
Decodificador JWT
Diferença de texto
Otimizador SVG
Visualizador EXIF
Extrator de cores
Gerador de favicons
Conversor Universal
Conversor de horas
Divisor de PDF
Imagens para PDF
PDF para Imagem
Removedor de Fundo
Ferramentas para desenvolvedores

JSON para TypeScript

Obtenha declarações TypeScript a partir de uma amostra JSON, com uniões, propriedades opcionais e objetos aninhados. Reveja o resultado antes de o utilizar como contrato de uma API.

No teu dispositivo

Os ficheiros e textos são processados no teu navegador.

política de Privacidade
JSON → TypeScriptProcessado neste navegador. Os dados não são enviados nem guardados.

Máximo de 200 KiB UTF-8; profundidade máxima: 50 níveis.

.ts

Com uma raiz array ou primitiva, o modo interface emite um alias de tipo raiz.

Os tipos descrevem apenas a amostra. As propriedades ausentes tornam-se opcionais; null é explícito; os arrays vazios utilizam unknown[]. Não valida dados em execução.

Como utilizar esta ferramenta

  1. Entrada

    Cole JSON válido ou carregue o exemplo com registos sintéticos. Inclua variantes representativas da estrutura que pretende descrever.

  2. Opções

    Escreva um nome raiz válido, como ApiResponse, e escolha interface ou type. Raízes que não sejam objetos utilizam um alias de tipo.

  3. Resultado

    Selecione Converter, reveja as propriedades opcionais e as uniões e copie ou descarregue o ficheiro .ts. Verifique-o com o compilador.

Exemplo resolvido

Exemplo resolvido · JSON para TypeScript

O segundo registo contém active e o primeiro não, por isso active é opcional. Os dois tipos observados de tag aparecem na união.

Entrada

[{"id":1,"tag":"x"},{"id":2,"tag":null,"active":true}]

Resultado

export type ApiResponse = ({
  active?: boolean;
  id: number;
  tag: null | string;
})[];

Opções: ApiResponse · type

Formatos e limites

Limites
Máximo de 200 KiB UTF-8; profundidade máxima: 50 níveis.
Opções
Ambos descrevem objetos. Type produz um alias; interface produz uma interface para uma raiz objeto. Uma raiz array ou primitiva precisa de um alias mesmo no modo interface.
Resultado
São comparados todos os objetos do mesmo array. Se uma propriedade faltar em algum, é marcada com ?. Um valor null é diferente de uma propriedade ausente.

Problemas frequentes

O que acontece a null e arrays vazios?

Null mantém-se como tipo explícito e pode formar uma união. Um array vazio é representado como unknown[] porque não há elementos dos quais inferir o tipo.

Os dados são validados em execução?

Não. TypeScript verifica tipos durante o desenvolvimento; estas declarações não inspecionam futuras respostas de uma API. Acrescente um validador de execução se necessário.

JSON para TypeScript

Obtenha declarações TypeScript a partir de uma amostra JSON, com uniões, propriedades opcionais e objetos aninhados. Reveja o resultado antes de o utilizar como contrato de uma API.

Reveja o resultado antes de o utilizar

O segundo registo contém active e o primeiro não, por isso active é opcional. Os dois tipos observados de tag aparecem na união.

Formatos e limites

Máximo de 200 KiB UTF-8; profundidade máxima: 50 níveis. Processado neste navegador. Os dados não são enviados nem guardados.

Perguntas Frequentes

Devo escolher interface ou type?

Ambos descrevem objetos. Type produz um alias; interface produz uma interface para uma raiz objeto. Uma raiz array ou primitiva precisa de um alias mesmo no modo interface.

Como são detetadas as propriedades opcionais?

São comparados todos os objetos do mesmo array. Se uma propriedade faltar em algum, é marcada com ?. Um valor null é diferente de uma propriedade ausente.

O que acontece a null e arrays vazios?

Null mantém-se como tipo explícito e pode formar uma união. Um array vazio é representado como unknown[] porque não há elementos dos quais inferir o tipo.

Os dados são validados em execução?

Não. TypeScript verifica tipos durante o desenvolvimento; estas declarações não inspecionam futuras respostas de uma API. Acrescente um validador de execução se necessário.

E se a amostra estiver incompleta?

O resultado só conhece os valores presentes. Não descobre campos futuros, regras de negócio, datas ou enumerações. Utilize amostras variadas e reveja o contrato real.