tsconfig.json
Ferramentas TypeScript e Otimização do Compilador

Gerador de Configuração TypeScript (tsconfig.json)

Gere configurações tsconfig.json modernas e robustas para Next.js, Node.js, Vite ou bibliotecas com modo estrito, aliases de caminho e resolução de módulos.

100% Privacidade no Cliente
Zero transmissão ao servidor
Predefinições:
Destino e Resolução de Módulos
Definições de biblioteca padrão integradas (lib):
Verificação Estrita
Emissão e Declarações
Modo de emissão Bundler: O TypeScript funciona apenas como verificador de tipos. O bundler produz os pacotes de runtime.
Interoperabilidade
Mapeamento de Caminhos
→
Arquivos Incluídos e Excluídos
tsconfig.json Pronto para TypeScript 5.x
Runtime Alvo
ES2022 • preserve
Sistema de Módulos
ESNext / bundler
Pontuação Estrita
100/100 • Verificação estrita

Privacidade 100% no Navegador

Gere e valide opções do compilador TypeScript exclusivamente no seu navegador sem envio de código para servidores.

Totalmente Compatível com TS 5.x

Alinhado aos padrões modernos como verbatimModuleSyntax, isolatedDeclarations e resolução bundler.

Auditoria e Diagnóstico Imediato

Identifica conflitos entre opções de compilação, flags obsoletas e oportunidades de otimização em tempo real.

Referência técnica e guia de arquitetura

Guia do Desenvolvedor do Gerador de Configuração TypeScript (tsconfig.json) — Guia de referência

Gere configurações tsconfig.json modernas e robustas para Next.js, Node.js, Vite ou bibliotecas com modo estrito, aliases de caminho e resolução de módulos.

Parâmetros principais e controles

targetEnum (ES5 | ES6/ES2015 - ES2023 | ESNext)

Especifica a versão do ECMAScript para o JavaScript emitido e as definições de tipos da biblioteca padrão. Ambientes modernos (Node.js 18+ e navegadores atuais) devem utilizar ES2022 ou ESNext.

Padrão: ES2022
moduleResolutionEnum (Bundler | NodeNext | Node16 | Node10)

Define como o TypeScript mapeia identificadores de importação para arquivos físicos. Utilize 'Bundler' para Vite, Turbopack ou Next.js, e 'NodeNext' para pacotes nativos Node.js ESM/CJS.

Padrão: Bundler
moduleEnum (ESNext | NodeNext | CommonJS | Preserve)

Define o formato de módulos para a saída JavaScript. 'ESNext' gera declarações padrão import/export, ideais para empacotadores modernos.

Padrão: ESNext
strictBoolean (true | false)

Ativa o conjunto completo de verificações estritas de tipo, incluindo strictNullChecks, noImplicitAny, strictFunctionTypes e strictPropertyInitialization.

Padrão: true
jsxEnum (react-jsx | react-jsxdev | preserve | react)

Controla a emissão de construções JSX em arquivos .tsx. 'react-jsx' emite automaticamente chamadas ao runtime moderno de JSX sem exigir React no escopo global.

Padrão: react-jsx
isolatedModulesBoolean (true | false)

Garante que cada arquivo possa ser transpilado com segurança e de forma isolada por ferramentas como Vite, esbuild, SWC ou Babel.

Padrão: true
skipLibCheckBoolean (true | false)

Ignora a verificação de tipos em arquivos de declaração (*.d.ts) dentro de node_modules, acelerando significativamente a compilação sem comprometer a segurança da aplicação.

Padrão: true

Dicas profissionais e melhores práticas

Separar transpilação e checagem

Ao combinar TypeScript com Vite, Next.js, esbuild ou Turbopack, habilite 'noEmit: true' junto com 'moduleResolution: Bundler'. O empacotador realiza a transpilação multithread em altíssima velocidade, deixando o tsc exclusivamente focado na validação de tipos (tsc --noEmit).

Configurar aliases sem baseUrl

Configure aliases de importação em compilerOptions.paths (como '@/*': ['./src/*']). A partir do TypeScript 4.1, os caminhos podem ser resolvidos diretamente em relação ao diretório do tsconfig.json sem a necessidade de definir baseUrl, prevenindo ambiguidades em monorrepositórios.

Builds incrementais em monorrepo

Em workspaces com pnpm, Turborepo ou Nx, divida seus pacotes em subprojetos com 'composite: true' e 'declaration: true'. Vinculá-los através da matriz raiz 'references' permite que o comando 'tsc --build' utilize caches do .tsbuildinfo para compilações incrementais ultrarrápidas.

Asserção definitiva em ORMs

Ao utilizar ORMs como TypeORM ou Prisma com strictPropertyInitialization habilitado, campos gerenciados pelo banco podem gerar alertas de não inicialização. Em vez de desabilitar o modo estrito globalmente, utilize o operador de asserção definitiva ('title!: string') nas propriedades mapeadas.

Problemas comuns e solução de problemas

Erro 'Cannot find module or its corresponding type declarations' ao importar pacotes ESM modernos

Configure 'moduleResolution: Bundler' caso utilize Vite, Webpack 5 ou Next.js. Se estiver construindo um aplicativo nativo Node.js, defina 'moduleResolution: NodeNext' e assegure-se de que imports relativos incluam extensões explícitas (ex.: import { util } from './util.js').

Aliases de caminho (@/*) compilam sem erros no tsc mas falham em execução com 'Cannot find module'

O compilador TypeScript não reescreve caminhos de importação nos arquivos JS emitidos. Para ambientes Node.js, utilize 'tsconfig-paths', execute via 'tsx' ou utilize subpath imports nativos no package.json ('#imports'). Para aplicações frontend, configure o mesmo alias no vite.config.ts ou webpack.config.js.

Compilação do TypeScript excessivamente lenta e travamentos na IDE em grandes projetos

Adicione 'skipLibCheck: true' em compilerOptions. Isso ignora verificações redundantes em arquivos de declaração de terceiros em node_modules, reduzindo os tempos de compilação em 50% a 70% sem diminuir a segurança dos seus próprios códigos.

Perguntas frequentes (FAQ)

Qual é a diferença entre moduleResolution 'Bundler' e 'NodeNext'?▼

'NodeNext' replica com fidelidade a resolução nativa de módulos ECMAScript do Node.js, exigindo extensões explícitas (.js) em imports relativos e respeitando a configuração de 'exports' do package.json. 'Bundler' é voltado para ferramentas modernas (Vite, Webpack, esbuild), permitindo importações sem extensão, resolução híbrida ESM/CJS e importação direta de estilos ou assets.

Por que strict: true é altamente recomendado em novos projetos TypeScript?▼

'strict: true' ativa simultaneamente verificações cruciais como strictNullChecks e noImplicitAny. Isso elimina em tempo de compilação categorias inteiras de falhas em produção (como 'undefined is not a function'). Habilitar o modo estrito tardiamente exige refatorações trabalhosas, sendo essencial iniciá-lo desde o primeiro dia.

Como target, module e lib interagem no tsconfig.json?▼

'target' define a versão da sintaxe JavaScript a ser gerada (ex.: classes, async/await). 'module' determina o formato de distribuição dos módulos (ex.: CommonJS vs ESM). 'lib' define quais tipagens de APIs globais (como DOM ou ES2022) estarão acessíveis ao compilador durante a análise estática, sem alterar o código JS produzido.

O que faz isolatedModules: true e por que ele é obrigatório no Vite e SWC?▼

Compiladores como esbuild, SWC e Babel processam cada arquivo individualmente em paralelo sem montar a árvore completa de tipos do projeto. Recursos como 'const enum' ou re-exportação de tipos sem 'export type' podem gerar JavaScript inválido quando transpilados isoladamente. 'isolatedModules: true' alerta sobre esses padrões previamente.

Arquivos .tsbuildinfo e pastas geradas devem ser versionados no Git?▼

Não. Adicione '*.tsbuildinfo' e pastas de distribuição (como dist/, build/ e out/) ao arquivo .gitignore. O arquivo .tsbuildinfo armazena hashes com caminhos absolutos locais para fins de compilação incremental, e artefatos de build devem ser gerados de forma determinística na sua esteira de CI/CD.

Ferramentas e utilitários relacionados

Todas as ferramentas →
Guia do Desenvolvedor: Gerador de DDL CREATE TABLE de JSON para ClickHouseDesenvolvimento

Converta documentos JSON de amostra em DDL SQL do ClickHouse com engine MergeTree, tipos UInt/Int/Float/String/DateTime e mapeamento de colunas Array/Nested.

Abrir ferramenta→
Guia do Desenvolvedor: Gerador de Esquema de Tabela Google BigQuery a partir de JSONDesenvolvimento

Infira e converta objetos JSON em esquemas de tabela JSON para o Google Cloud BigQuery com suporte a RECORD, STRING, INTEGER, NUMERIC e TIMESTAMP.

Abrir ferramenta→
Guia do Desenvolvedor: Gerador de DDL CREATE TABLE de JSON para SnowflakeDesenvolvimento

Converta payloads e esquemas JSON em instruções SQL CREATE TABLE para Snowflake de nível de produção com tipos VARIANT, VARCHAR, NUMBER, BOOLEAN e TIMESTAMP_NTZ.

Abrir ferramenta→
Guia do Desenvolvedor: Gerador de Variáveis e Locals Terraform HCL a partir de JSON / YAMLDesenvolvimento

Converta estruturas JSON e YAML em restrições de tipo de variáveis Terraform HCL (type = object({...})), valores padrão, blocos locals e definições terraform.tfvars.

Abrir ferramenta→
Guia do Desenvolvedor: Conversor de OpenAPI / Swagger para GraphQL SDLDesenvolvimento

Converta endpoints REST, corpos de requisição e esquemas JSON de OpenAPI 3.0/3.1 e Swagger 2.0 em tipos, consultas, mutações e definições de entrada GraphQL SDL.

Abrir ferramenta→
Guia do Desenvolvedor: Gerador de Schemas TypeScript TypeBox a partir de DDL SQLDesenvolvimento

Converta instruções SQL CREATE TABLE em esquemas de validação em tempo de execução @sinclair/typebox usando Type.Object, Type.String, Type.Number e Type.Optional.

Abrir ferramenta→