O mínimo que você precisa para usar TypeScript no Node.js o mais rápido possível

Por Felipe Barbosa, 15/02/2023

typescript

Esse post é uma referência para configurar um ambiente de desenvolvimento Node.js com TypeScript em 2023 o mais rápido possível. Pronto? Vamos lá!

Assumindo que você criou um novo diretório vazio para o projeto e que você está nele:

1. Inicializando um novo projeto

npm init -y

2. Instalando as dependências

npm i -D typescript ts-node-dev @types/node
  • A biblioteca typescript nos dará o compilador da linguagem tsc

  • ts-node-dev é usado para executar arquivos TypeScript diretamente, sem emitir o javascript resultante (se quiser saber mais, continue lendo), observando nossos aquivos e reinicializando nosso script quando modificações são detectadas

  • Por fim, a lib @types/node é necessária para tipar as APIs do Node.js (process, fs, __dirname, __filename, etc)

3. Criando o arquivo tsconfig.json

npx tsc --init
Opcional: mudando a versão de saída do JavaScript

No tsconfig.jsoné possível apontar uma versão de saída para o JavaScript. Na chave "target", use: "ES2022". Isso vai fazer com que tenhamos uma versão moderna de saída para o JavaScript transpilado, o que fará com que o Node possa fazer uso de recursos recentes da linguagem, otimizando o código de saída, que é o que será efetivamente executado.

4. Criando o arquivo de entrada do projeto

touch index.ts

Um singelo "Hello, TypeScript" no index.ts:

console.log("Hello, TypeScript!)

5. Configurando um script de desenvolvimento

No arquivo package.json, adicione o seguinte script:

...

"scripts": {
    "dev": "ts-node-dev --respawn index.ts"
},

...

A mágica na verdade está na biblioteca ts-node, que é uma lib que faz uma compilação JIT (just in time) do TypeScript e passa o código resultante para o Node. Isso faz com que possamos rodar TypeScript diretamente no Node, sem emitir os arquivos javascript resultantes. O ts-node-dev é uma wrapper em torno do ts-node que adiciona o recurso de observar nossos arquivos e reiniciar nosso script quando houver modificações. Isso nos dá uma experiência de desolvimento de primeira classe.

6. Rodando o script

npm run dev

Você deve ver no seu terminal algo como:

> ts-node-dev --respawn index.ts

[INFO] 14:02:46 ts-node-dev ver. 2.0.0 (using ts-node ver. 10.9.1, typescript ver. 4.9.5)
Hello, TypeScript!

Pronto! Agora você tem um ambiente de desenvolvimento com Node e TypeScript com hot reloading configurado que irá reinicializar sua aplicação toda vez que houver mudança no código.

É isto. Happy coding!

Gostando até aqui? ✍️

Receba atualizações de conteúdo diretamente na sua caixa de entrada!