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.
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.
Máximo de 200 KiB UTF-8; profundidade máxima: 50 níveis.
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.
Cole JSON válido ou carregue o exemplo com registos sintéticos. Inclua variantes representativas da estrutura que pretende descrever.
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.
Selecione Converter, reveja as propriedades opcionais e as uniões e copie ou descarregue o ficheiro .ts. Verifique-o com o compilador.
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.
[{"id":1,"tag":"x"},{"id":2,"tag":null,"active":true}]export type ApiResponse = ({
active?: boolean;
id: number;
tag: null | string;
})[];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.
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.
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.
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.
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.
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.
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.
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.
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.
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.