Como criar e usar módulos TypeScript
Os módulos TypeScript oferecem uma abordagem estruturada para organizar e gerenciar código. Os módulos permitem o encapsulamento de código em arquivos separados, o que melhora a manutenibilidade, a reutilização e a testabilidade. Este guia explica o processo de criação e uso de módulos TypeScript.
O que são módulos TypeScript?
Módulos TypeScript são arquivos individuais que exportam e importam elementos de código, como classes, funções e variáveis. Ao empregar módulos, o código pode ser dividido em partes gerenciáveis, facilitando melhor controle sobre interações entre diferentes partes do código.
Criando um módulo TypeScript
Para criar um módulo TypeScript, os seguintes passos devem ser seguidos:
- Crie um arquivo TypeScript: Comece criando um novo arquivo `.ts` para o módulo, como `mathUtils.ts`.
- Defina e exporte o código: Implemente funções, classes ou variáveis dentro deste arquivo e use a palavra-chave
export
para disponibilizá-las para outros módulos.
Exemplo de um módulo simples:
// mathUtils.ts
export function add(a: number, b: number): number {
return a + b;
}
export function subtract(a: number, b: number): number {
return a - b;
}
Neste exemplo, as funções `add` e `subtract` são definidas e exportadas do módulo `mathUtils.ts`.
Importando e usando um módulo TypeScript
Para utilizar o código de um módulo TypeScript em outro arquivo, ele deve ser importado. Isso envolve:
- Crie um novo arquivo TypeScript: Gere um arquivo onde o código do módulo será usado, como `app.ts`.
- Importe o módulo: Empregue a palavra-chave
import
para trazer funções, classes ou variáveis do módulo.
Exemplo de importação e uso das funções `add` e `subtract`:
// app.ts
import { add, subtract } from './mathUtils';
const sum = add(5, 3);
const difference = subtract(5, 3);
console.log(`Sum: ${sum}`);
console.log(`Difference: ${difference}`);
Neste exemplo, as funções `add` e `subtract` são importadas do módulo `mathUtils` e usadas no arquivo `app.ts`.
Exportações padrão e nomeadas
Os módulos TypeScript suportam exportações padrão e nomeadas. Aqui está uma breve visão geral:
- Exportações padrão: Um único valor pode ser exportado como exportação padrão de um módulo usando
export default
. - Exportações nomeadas: Vários valores podem ser exportados de um módulo usando exportações nomeadas com a palavra-chave
export
.
Exemplo demonstrando ambos os tipos de exportação:
// shapes.ts
export default class Circle {
constructor(public radius: number) {}
area(): number {
return Math.PI * this.radius ** 2;
}
}
export function getCircleInfo(radius: number): string {
const circle = new Circle(radius);
return `A circle with radius ${radius} has an area of ${circle.area()}`;
}
Neste exemplo, `Circle` é exportado como a exportação padrão, enquanto `getCircleInfo` é uma exportação nomeada.
Organizando módulos em um projeto
Para projetos maiores com vários módulos, a organização se torna crucial. Considere as seguintes dicas:
- Estrutura de diretório: Agrupe módulos relacionados em diretórios como `models/`, `services/` e `utils/`.
- Arquivos de índice: Use arquivos `index.ts` em diretórios para agregar e reexportar módulos, simplificando as importações em todo o projeto.
Exemplo de estrutura de diretório:
project/
│
├── src/
│ ├── models/
│ │ ├── index.ts
│ │ └── user.ts
│ └── app.ts
Conclusão
Os módulos TypeScript são um recurso essencial para organizar e gerenciar código. Ao criar e usar módulos, o código pode ser mantido modular, sustentável e escalável. Entender como exportar e importar código, bem como estruturar um projeto, aumenta a eficácia do desenvolvimento TypeScript.