Usando TypeScript em projetos Node.js
· 1 min. de leitura
Também disponível em English
TypeScript é extremamente útil durante o desenvolvimento de aplicações Node.js. Vamos ver como configurá-lo para uma experiência de desenvolvimento tranquila.
Configurando o TypeScript
Primeiro, precisamos instalar o TypeScript. Podemos fazer isso executando o seguinte comando:
npm i -D typescript
Em seguida, precisamos criar um arquivo tsconfig.json na raiz do nosso projeto. Este arquivo conterá a configuração do TypeScript para o nosso projeto. Aqui está um exemplo de um arquivo tsconfig.json que peguei do Total TypeScript e adicionei mais algumas coisas (leia o código e preste atenção aos comentários):
{
"compilerOptions": {
/* Opções Base: */
"esModuleInterop": true,
"skipLibCheck": true,
"target": "es2022",
"allowJs": true,
"resolveJsonModule": true,
"moduleDetection": "force",
"isolatedModules": true,
"verbatimModuleSyntax": true,
/* Configurando ~ como alias para o diretório src/ */
"baseUrl": ".",
"paths": {
"~/*": ["src/*"]
},
/* Rigor */
"strict": true,
"noUncheckedIndexedAccess": true,
"noImplicitOverride": true,
/* Se compilando com TypeScript: */
"module": "NodeNext",
"outDir": "dist",
"sourceMap": true,
/* E se você estiver construindo para uma biblioteca: */
"declaration": true,
/* E se você estiver construindo para uma biblioteca em um monorepo: */
"composite": true,
"declarationMap": true,
/* Se NÃO estiver compilando com TypeScript: */
"module": "preserve",
"noEmit": true,
/* Se o seu código roda no DOM: */
"lib": ["es2022", "dom", "dom.iterable"],
/* Se o seu código não roda no DOM: */
"lib": ["es2022"]
},
/* Estou considerando que todo o seu código está em src/ */
"include": ["src/**/*.ts"]
}
Configurando o script de build
Em seguida, precisamos configurar um script de build que irá compilar nosso código TypeScript para JavaScript. Primeiro, instale tsc-alias para lidar com os aliases que definimos no arquivo tsconfig.json:
npm i -D tsc-alias
Depois, você pode adicionar o script build adicionando o seguinte script ao nosso arquivo package.json:
{
"scripts": {
"build": "tsc && tsc-alias"
}
}
Configurando o script de desenvolvimento
Agora, precisamos configurar um script de desenvolvimento que irá observar mudanças em nossos arquivos TypeScript e recompilá-los. Pessoalmente, gosto de usar tsx, pois proporciona uma experiência de desenvolvimento muito mais rápida em comparação com o TypeScript watcher ou ts-node. Primeiro, instale tsx:
npm i -D tsx
Depois, você pode adicionar o script dev (para iniciar o projeto em modo de desenvolvimento) adicionando o seguinte script ao seu arquivo package.json:
{
"scripts": {
"build": "tsc && tsc-alias",
"dev": "node --import=tsx --watch ./src/index.ts"
}
}
Sim, você não terá verificação de tipos enquanto desenvolve usando tsx, mas você pode rodar npm run build para isso ou adicionar um novo script typecheck ao seu package.json e executá-lo sempre que quiser verificar erros de tipos:
{
"scripts": {
"build": "tsc && tsc-alias",
"dev": "node --import=tsx --watch ./src/index.ts",
"typecheck": "tsc --noEmit"
}
}