DEV Community

Yuri Peixinho
Yuri Peixinho

Posted on

Typescript: Transpilação, Compilação e Execução

Introdução

Tecnicamente o TypeScript faz transpilação: converte código TS → JS (mesma abstração, linguagem diferente), diferente de uma compilação clássica que gera código de máquina (como C → binário).

Na prática, a comunidade usa os dois termos de forma intercambiável, e o próprio time do TypeScript chama de "compilation". Não perca sono com isso.

O fluxo com tsc

app.ts → [tsc] → app.js → [node] → execução

O tsc lê seu TypeScript, checa os tipos, e emite JavaScript puro. O Node não sabe nada sobre TypeScript — ele só executa o .js resultante.

Configuração via tsconfig.json (recomendado em vez de flags no CLI):

{
  "compilerOptions": {
    "target": "ES2020",        // versão do JS emitido
    "module": "commonjs",      // sistema de módulos
    "outDir": "./dist",        // onde os .js vão parar
    "rootDir": "./src",        // onde estão os .ts
    "strict": true,            // habilita todas as checagens rígidas
    "esModuleInterop": true
  }
}
Enter fullscreen mode Exit fullscreen mode

ts-node: pular o passo manual

O ts-node executa TypeScript diretamente, sem gerar .js em disco:

npx ts-node app.ts

# ou com hot reload:
npx ts-node-dev app.ts
Enter fullscreen mode Exit fullscreen mode

Internamente ele ainda transpila, só faz isso em memória. Útil para desenvolvimento e scripts rápidos, mas não use em produção — o overhead de transpilação em runtime é real.

Comparativo prático

tsc + node ts-node
Gera .js em disco ❌ (memória)
Checagem de tipos ✅ (pode desabilitar com --transpile-only)
Produção
Dev rápido / scripts Chato

Fluxo recomendado para um projeto real

# inicializa
npm init -y
npm install typescript --save-dev
npx tsc --init   # gera tsconfig.json

# dev
npx ts-node-dev src/index.ts

# build para produção
npx tsc
node dist/index.js
Enter fullscreen mode Exit fullscreen mode

Top comments (0)