Cola o TypeScript à esquerda e clica em "Converter" — a gente transforma em JSONCola TypeScript

O que essa ferramenta faz

Você tem uma interface TypeScript com um literal de objeto tipado, ou uma atribuição const config: Config = {...}, e precisa desse valor como JSON de verdade — para um request de API, um fixture ou um exemplo OpenAPI. Cola o bloco inteiro aqui. A ferramenta tira as anotações de tipo, resolve o literal e devolve JSON que parseia em qualquer lugar.

Sintaxe que é só tipo é tratada do mesmo jeito que o compilador do TypeScript trataria na hora de emitir: interfaces e type aliases são apagados, as const e satisfies não mudam a saída, Record<string, X> continua como objeto, e os modificadores readonly e ? são ignorados no JSON (campos opcionais que faltam simplesmente não aparecem). Strings recebem aspas igual ao JSON.stringify — aspas duplas, com escape onde precisa — e as chaves são sempre strings.

Enums emitem o valor de runtime. Enum numérico vira número, enum de strings vira string. Instâncias de Date saem em ISO-8601 segundo a RFC 8259. Propriedades undefined somem, null continua null. Pode colar várias interfaces com suas instâncias de uma vez só — cada instância vira uma entrada de nível superior no JSON.

Como usar

Três passos. Funciona para uma interface de cinco linhas ou para um módulo <code>types.ts</code> inteiro.

1

Cola o TypeScript (ou testa o exemplo)

Joga no editor da esquerda. Interface + objeto tipado, type alias, definições de enum ou const exportado — tudo funciona. Clica em Carregar exemplo para ver uma entrada realista.

Deixa a sintaxe no estilo do TypeScript handbook como está — não precisa remover generics, decorators ou import type. A referência JSON do MDN é uma boa revisão se quiser relembrar como funciona o mapeamento JS para JSON.

2

Clica em Converter

Aperta o botão verde Converter. A ferramenta apaga as informações de tipo, avalia os literais e serializa igual ao JSON.stringify(obj, null, 2).

3

Copia o JSON

O painel da direita mostra JSON formatado pronto para colar no body de um request, num exemplo de OpenAPI ou num fixture de teste.

Quando isso salva o dia

Exemplos de request de API

Você tem um DTO de request em Angular, Next.js ou NestJS e precisa de um payload JSON para Swagger, Postman ou um curl. Cola a interface + o objeto, recebe o JSON.

Fixtures de teste unitário

Transforma um mock tipado inline de um teste Jest ou Vitest num fixture JSON separado para MSW, Playwright ou rodadas de integração.

Exemplos de OpenAPI e JSON Schema

Cola a interface <code>User</code> e uma instância de exemplo para gerar o bloco <code>example</code> do seu schema <a href="https://swagger.io/specification/" target="_blank" rel="noopener">OpenAPI</a> de uma vez só.

Migrar config para JSON

Saindo de um <code>config.ts</code> tipado para um store de config em JSON? Cola o const tipado, pega o JSON limpinho e joga no novo sistema.

Perguntas comuns

Remove as anotações de tipo e os generics?

Sim. Interfaces, type aliases, parâmetros genéricos, casts com as, satisfies e readonly são todos apagados do mesmo jeito que o compilador do TypeScript apaga. O JSON reflete só o valor de runtime.

Como são tratados os enums?

Enums numéricos emitem o número, enums de string emitem a string. const enum é tratado igual a um enum normal para fins de conversão. Referências a enum dentro do literal são resolvidas para os valores declarados.

E os campos opcionais e os tipos Record?

Campos opcionais (name?: string) que estão ausentes simplesmente não aparecem no JSON — mesmo comportamento padrão do JSON.stringify. Record<string, X> continua sendo um objeto JSON indexado pelas chaves string que você passar.

Posso colar um arquivo de types inteiro?

Pode. Várias interfaces, type aliases, enums e consts tipados cabem numa cola só. Cada instância tipada de nível superior vira sua própria entrada no JSON, com os tipos aninhados expandidos no lugar.

Como lidar com Date, null e undefined?

Valores Date viram strings ISO-8601. null fica como null JSON. Propriedades undefined caem fora dos objetos. Em arrays, elementos undefined viram null naquela posição — igual ao JSON.stringify.

Meu código é armazenado?

O código é enviado ao backend só para ser convertido. Não é logado nem persistido. Se você vai colar algo sensível, dá uma olhada antes.

Outras ferramentas que podem ajudar

TypeScript para JSON é só uma peça do quebra-cabeça. Estas ferramentas combinam bem com ela: