Gerador de TSConfig

Gere tsconfig.json para qualquer projeto TypeScript. Presets para Node 18/20/22, Next.js, React, bibliotecas — com cada opção do compilador explicada.

Comma-separated glob patterns

Comma-separated glob patterns

Sobre esta ferramenta

O arquivo tsconfig.json controla como o compilador TypeScript processa seu código — qual versão JavaScript gerar, qual sistema de módulos usar, quão rigorosa deve ser a checagem de tipos, e onde encontrar seus arquivos fonte. Configurar o tsconfig corretamente importa. Um target mal configurado significa que você envia polyfills desnecessários, ou usa sintaxe que seu runtime não suporta. Configurações de módulo erradas quebram imports. Flags de strict ausentes deixam bugs passar. Este gerador oferece presets testados em batalha para as configurações mais comuns — Node.js (18, 20, 22), Next.js, React com Vite, e bibliotecas npm — e depois permite ajustar cada opção. A configuração gerada está pronta para colar no seu projeto.

Como usar

1. Escolha um preset que corresponda ao seu projeto (Node 20, Next.js, React, etc.) 2. Ajuste opções individuais do compilador se necessário — target, module, strictness, paths 3. O tsconfig.json atualiza em tempo real conforme você muda configurações 4. Clique em "Copiar" para copiar a configuração, ou "Download" para salvar o arquivo 5. Cole na raiz do seu projeto como tsconfig.json

Perguntas frequentes

Qual tsconfig usar para Node 18?
Para Node 18, use target: ES2023, module: NodeNext, e moduleResolution: NodeNext. Isso corresponde ao suporte JavaScript nativo do Node 18 e sistema de módulos ESM. O preset Node 18 neste gerador configura todas essas opções automaticamente.
Qual a diferença entre module NodeNext e ESNext?
NodeNext segue as regras de resolução de módulos do Node.js — respeita 'exports' do package.json e requer extensões de arquivo nos imports. ESNext assume que um bundler (como Vite ou webpack) vai resolver módulos. Use NodeNext para apps Node.js, ESNext para apps frontend com bundler.
O que moduleResolution Bundler faz?
moduleResolution: Bundler diz ao TypeScript para resolver imports da forma que bundlers modernos (Vite, webpack, esbuild) fazem — sem necessidade de extensões, suporte a 'exports' do package.json. Use para projetos frontend com bundler. Não use para apps Node.js que rodam sem bundler.
Devo habilitar strict mode?
Sim, para qualquer projeto novo. Strict mode habilita strictNullChecks, noImplicitAny, strictFunctionTypes e outras checagens que pegam bugs reais. Desabilitar strict em codebases legadas é compreensível, mas projetos novos devem sempre começar com strict: true.
Qual a diferença entre target e lib?
target controla qual sintaxe JavaScript o compilador gera (arrow functions, async/await, etc.). lib controla quais definições de tipo estão disponíveis (Promise, Map, APIs DOM, etc.). Para Node.js você tipicamente quer lib: ['ES2023'] sem DOM. Para navegadores adicione 'DOM' e 'DOM.Iterable'.
Preciso de skipLibCheck: true?
skipLibCheck: true pula checagem de tipos de arquivos .d.ts de declaração, o que acelera a compilação significativamente. É recomendado para a maioria dos projetos porque arquivos de declaração de node_modules podem ter tipos conflitantes que não são problema seu resolver.
O que verbatimModuleSyntax faz?
verbatimModuleSyntax força você a usar 'import type' para imports apenas de tipo e mantém sua sintaxe import/export exatamente como escrita. Substitui as opções antigas importsNotUsedAsValues e preserveValueImports. É a forma moderna de lidar com imports de tipo no TypeScript 5+.

Ferramentas relacionadas