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.
# tsconfig.json sets strictness and target
# check types only, no output
npx tsc --noEmitPapel 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.