Qual é o conversor JSON para TypeScript?

O conversor JSON para TypeScript lê um valor JSON de amostra - uma resposta de API, um arquivo de configuração, um registro de banco de dados - e grava as interfaces TypeScript que o descrevem Objetos aninhados tornam-se suas próprias interfaces nomeadas, matrizes de objetos são mescladas em uma interface de elemento único em vez de uma união extensa, e chaves que são nulas ou ausentes em alguns registros são marcadas como opcionais Você cola dados que já possui; você obtém tipos que, de outra forma, escreveria manualmente.
Digitar manualmente uma resposta de API é tedioso e propenso a erros de uma maneira específica: você digita o que *pensa* o ponto final retorna, não o que ele realmente retornou. Campos que você nunca notou são omitidos, um número inteiro que às vezes é nulo é digitado como `número` e o erro aparece no tempo de execução na produção e não no seu editor. Gerar tipos diretamente de uma carga real fecha essa lacuna, porque a forma que você compila é a forma que o servidor realmente enviou.
Tudo é executado no seu navegador O mecanismo de inferência é TypeScript livre de dependência, não um wrapper em torno de um serviço remoto, então as cargas úteis - que rotineiramente carregam tokens de acesso, registros de clientes e IDs internos - nunca saem da página Escolha interfaces ou aliases de tipo, alterne a palavra-chave `export` e modificadores `lyreadonly`, escolha a largura do seu recuo e copie a saída ou baixe um arquivo.ts.
As interfaces geradas descrevem a amostra que você forneceu, não a API que você está chamando, e essa distinção é todo o risco Um campo que por acaso está presente em cada objeto de sua amostra é marcado como necessário, mesmo que o servidor omita às vezes, e um campo que é nulo na amostra não pode ser distinguido de um que é sempre nulo Matrizes vazias são o caso mais claro: uma matriz sem elementos não dá nenhuma informação sobre o que contém A fusão de matriz ajuda aqui combinando cada objeto em uma lista em uma interface e marcando chaves que estão faltando em algumas entradas como opcional, de modo que uma amostra maior e mais variada produz um tipo mais honesto Onde a API tem um esquema ou documento OpenAPI, gere a partir disso e use isso para explorar uma resposta não documentada.
Como usar o conversor JSON para TypeScript?
Cole seu JSON
Solte uma resposta da API, um arquivo de fixture ou qualquer valor JSON. Carregue a amostra primeiro se quiser ver como objetos, matrizes e campos nulos são tratados.
Nomeie o tipo de raiz
Defina o nome do tipo raiz - geralmente o recurso, como Usuário ou Fatura. As interfaces aninhadas são nomeadas automaticamente a partir de sua chave, com os nomes dos elementos da matriz singularizados (os lançamentos se tornam Release).
Escolha seu estilo de saída
Escolha Interface ou digite alias, decida se você deve exportar cada declaração, adicionar modificadores de leitura se sua base de código preferir formas imutáveis e defina o recuo para 2 ou 4 espaços.
Gerar e, em seguida, copiar ou baixar
Pressione gerar. Revise os opcionais e sindicatos inferidos, copie o código para sua área de transferência ou baixe-o como um arquivo .ts pronto para ser lançado na sua pasta de tipos.
Principais características
Extração de interface aninhada
Cada objeto aninhado se torna sua própria interface reutilizável com nome em vez de uma forma anônima embutida, para que você possa importar e fazer referência aos tipos internos de forma independente.
mesclagem de matriz inteligente
Uma matriz de objetos é mesclada em um elemento de interface. As chaves presentes em alguns registros, mas não em outras, se tornam opcionais, o que é exatamente o comportamento da API paginada real.
Manuseio anulável que você controla
Escolha se um valor nulo significa que a chave é opcional ou se null pertence à união. Ambas as convenções são comuns; a ferramenta não força um em sua base de código.
Interfaces ou aliases de tipo
Emite `usuário de interface {}` ou `type user = {}` para corresponder às regras de lint existentes, com modificadores `export` e `redonly' opcionais aplicados de forma consistente em todas as declarações.
Frequently Asked Questions
Related Tools
JSON Flattener
Flatten nested JSON into single-level dot-notation keys, or unflatten dotted keys back into nested objects and arrays. Lossless round trip. 100% client-side.
JSON Schema Generator
Generate a JSON Schema from any JSON sample. Infers types, merges arrays of objects into one item schema, derives required fields, and detects date-time, email, uri, and uuid formats. Draft-07 and 2020-12 output. 100% client-side.
JSON to Go Struct
Convert JSON into Go struct definitions with json tags. Nested objects become inline structs, arrays of objects are merged, and field names follow Go conventions. Runs client-side.
JSONPath Tester
Test JSONPath expressions against any JSON and see the matched values and their paths instantly. Supports wildcards, recursive descent, slices, and filters. 100% client-side.
Comments
0 comments
No comments yet. Be the first to share your thoughts!