Skip to content
Latchkey

O que é o compilador do TypeScript (tsc)? Explicado

tsc é o compilador do TypeScript: ele verifica seu código em relação aos tipos e converte TypeScript em JavaScript puro que qualquer runtime consegue executar.

O compilador do TypeScript, invocado como "tsc", faz dois trabalhos: verifica se seu código respeita suas anotações de tipo e emite JavaScript. Muitas ferramentas de build removem os tipos rapidamente sem verificá-los, e é por isso que rodar o tsc como uma etapa dedicada de type-check no CI é tão importante.

O que é o tsc

tsc é o compilador oficial do TypeScript. A partir de arquivos .ts e .tsx, ele realiza type-check completo, reporta erros de tipo e emite JavaScript, além de arquivos de declaração opcionais (.d.ts) e source maps. Seu comportamento é definido por um tsconfig.json que estabelece o target, o formato de módulo, o nível de strictness e quais arquivos incluir.

Type-checking versus transpiling

Há duas tarefas separáveis: verificar tipos e produzir JavaScript. Ferramentas rápidas como esbuild, SWC e Babel transpilam apagando as anotações de tipo sem verificá-las. O tsc é a ferramenta que de fato valida os tipos, e é por isso que "tsc --noEmit" (só verificar, sem emitir nada) é um gate padrão de CI mesmo quando outra ferramenta faz o bundling.

Um exemplo de uso

Faça type-check de todo o projeto sem emitir arquivos.

Type-checking with tsc
# tsconfig.json sets strictness and target
# check types only, no output
npx tsc --noEmit

Papel em CI/CD

No CI, "tsc --noEmit" é o gate canônico de segurança de tipos: ele falha o build se existir qualquer erro de tipo, capturando bugs que transpiladores rápidos ignoram silenciosamente. Fazer type-check de projetos grandes consome muita CPU e pode ser uma etapa lenta; builds incrementais (o cache .tsbuildinfo) e project references ajudam, e essas verificações terminam mais rápido em runners gerenciados mais capazes.

Alternativas

esbuild, SWC e Babel conseguem transpilar TypeScript muito mais rápido, mas não fazem type-check. O "vue-tsc" e wrappers similares estendem o tsc para arquivos de framework. Não existe uma alternativa real para um type-check preciso; o tsc é a ferramenta autoritativa, normalmente executada ao lado de um bundler mais rápido.

Principais conclusões

  • O tsc faz type-check do TypeScript e também emite JavaScript.
  • Bundlers rápidos removem os tipos sem verificá-los; só o tsc os valida.
  • Rode "tsc --noEmit" no CI como o gate autoritativo de segurança de tipos.

Guias relacionados