Este guia aborda de forma detalhada o processo de transformação de projetos Node.js de JavaScript para TypeScript. Serão discutidos passos como a alteração de extensões de arquivos, configuração do ambiente, importação/exportação de módulos, instalação de tipagens, criação de interfaces e a preparação para orientação a objetos. Ao seguir estas etapas, é possível migrar aplicações Node.js para TypeScript, aumentando a produtividade e a qualidade do código com tipagem estática e outras funcionalidades.

Transformando um projeto Node.js para TypeScript

Neste artigo, vamos explorar o processo de transformação de um projeto Node.js de JavaScript para TypeScript. Abordaremos os seguintes tópicos:

  • Alteração da extensão .js para .ts em todos os arquivos do projeto
  • Configuração do tsconfig.json para definir as configurações de compilação
  • Importação e exportação de módulos para trabalhar com TypeScript
  • Instalação de tipagens de pacotes para garantir a integração correta de bibliotecas externas
  • Criação de interfaces para tipos personalizados, melhorando a tipagem e a organização do código
  • Compilação e build do projeto para JavaScript
  • Preparação para orientação a objetos, explorando recursos avançados do TypeScript

Alterando extensões .js para .ts

O primeiro passo para migrar um projeto Node.js para TypeScript é alterar a extensão dos arquivos JavaScript (.js) para TypeScript (.ts). Isso deve ser feito em todos os arquivos do projeto, incluindo:

  • index.js → index.ts
  • produtoRoute.js → produtoRoute.ts
  • produtoModel.js → produtoModel.ts
  • kinex.js → kinex.ts
  • config.js → config.ts

Configurando o tsconfig.json

O arquivo tsconfig.json contém as configurações do compilador TypeScript. Para configurá-lo adequadamente, é necessário definir parâmetros como:

  • As opções de compilação, como o alvo da versão do ECMAScript
  • O mapeamento de módulos para especificar o sistema de módulos a ser utilizado
  • As configurações de saída para determinar o diretório de saída dos arquivos compilados

Configurações do TypeScript

No projeto, foram adicionadas configurações importantes para o TypeScript, visando melhorar a verificação de tipos e a interoperabilidade entre módulos CommonJS e ES6. A ativação do strict permite verificações de tipos mais rígidas, enquanto o esModuleInterop possibilita a interoperabilidade entre os diferentes tipos de módulos.

  • Configuração do TypeScript para verificação de tipos rígidas
  • Habilitação da interoperabilidade entre módulos CommonJS e ES6

Importação e exportação de módulos

A sintaxe de importação e exportação foi alterada de CommonJS para ES6, o que impacta na forma como os módulos são importados e exportados. Agora, é utilizado o `import` para importar módulos e `export default` ou `export` para exportá-los.

  • Mudança na sintaxe de importação e exportação de módulos
  • Utilização de `import` para importar módulos
  • Utilização de `export default` ou `export` para exportar módulos

Instalando tipagens de pacotes

Para habilitar o IntelliSense, a verificação de tipo e o auto-completar para pacotes npm, as tipagens são instaladas com o comando `yarn add -D @types/nome_do_pacote`. Isso é essencial para garantir que o TypeScript reconheça e forneça suporte aos tipos corretos dos pacotes utilizados no projeto.

  • Instalação de tipagens para habilitar o IntelliSense e a verificação de tipo
  • Utilização do comando `yarn add -D @types/nome_do_pacote` para instalar as tipagens

Criando interfaces para tipos personalizados

Para tipar objetos Javascript personalizados, interfaces TypeScript são criadas. Essas interfaces permitem definir a estrutura e os tipos dos objetos, proporcionando maior clareza e segurança ao trabalhar com tipos personalizados, como no exemplo da interface `Produto` que representa um produto da aplicação.

  • Utilização de interfaces TypeScript para tipar objetos personalizados
  • Melhoria na clareza e segurança ao trabalhar com tipos personalizados

Introdução à Interface de Produto

A interface de Produto é uma ferramenta essencial para tipar funções e objetos que lidam com produtos no sistema. Ela permite definir a estrutura e o tipo de dados que devem ser utilizados ao lidar com informações de produtos.

  • A interface de Produto facilita a padronização e organização das informações relacionadas aos produtos
  • Permite a definição de tipos específicos para cada atributo de um produto, como id, nome e preço
  • Ajuda a evitar erros de tipagem e garante a consistência dos dados ao longo do desenvolvimento

Compilação e Build do Projeto

Ao compilar o projeto com `npx tsc`, os arquivos TypeScript são convertidos para JavaScript vanilla em uma pasta `dist`, prontos para deploy em produção. A pasta `dist` contém apenas o código compilado, enquanto a pasta raiz mantém os arquivos TypeScript para desenvolvimento.

  • A compilação do projeto é realizada utilizando o comando `npx tsc`, que converte os arquivos TypeScript para JavaScript
  • Os arquivos JavaScript resultantes são armazenados na pasta `dist`, separados dos arquivos originais em TypeScript, facilitando o deploy em ambientes de produção
  • Manter os arquivos TypeScript na pasta raiz permite a continuidade do desenvolvimento e a manutenção do código-fonte original

Preparação para Orientação a Objetos

Ao final, o código está preparado para aplicar princípios de orientação a objetos, com a criação de classes e encapsulamento de lógica. Isso será abordado em detalhes futuramente.

  • A preparação para orientação a objetos envolve a adoção de conceitos fundamentais, como a criação de classes e o encapsulamento de lógica
  • Essa abordagem visa aprimorar a estrutura do código, promovendo uma organização mais eficiente e reutilização de componentes
  • Os princípios de orientação a objetos são fundamentais para o desenvolvimento de sistemas escaláveis e de fácil manutenção

Aprenda mais sobre TypeScript!

Para complementar seus estudos, recomendo o cursos de Introdução a TypeScript da DNC, onde disponibilizamos 3 aulas 100% gratuitas pra você aproveitar e dar o primeiro passo na área.

Crie uma conta para obter acesso ao curso e dê o primeiro passo para alavancar sua carreira.

Conclusão

Transformar projetos Node.js em JavaScript para TypeScript requer algumas alterações como: configuração do ambiente e compiler, import/export ES6 e tipagem de funções/objetos, instalação de tipos e criação de interfaces, e separação do código em desenvolvimento e produção. Seguindo essas etapas, é possível migrar aplicações Node.js para TypeScript para aumentar a produtividade e qualidade do código com tipagem estática e outras funcionalidades.

  • A migração para TypeScript demanda a configuração do ambiente e do compilador para suportar a linguagem
  • A utilização de import/export ES6 e a tipagem de funções/objetos são aspectos essenciais durante a migração
  • A instalação de tipos e a criação de interfaces são passos importantes para garantir a consistência e segurança do código
  • A separação do código em ambientes de desenvolvimento e produção é crucial para a organização e manutenção do projeto