Módulos
Módulos em TypeScript são arquivos que contêm código com exportações e importações, permitindo organizar, reutilizar e encapsular funcionalidades. Qualquer arquivo que contenha uma declaração import ou export é considerado um módulo. O sistema de módulos segue a especificação do ECMAScript 2015 (ES6) e suporta vários padrões de exportação/importação.
Exportação de módulos
Exportações Nomeadas (Named Exports)
Permitem exportar várias variáveis, funções ou classes de um mesmo módulo. Devem ser importadas com o mesmo nome ou renomeadas.
// mathUtils.ts
export function somar(a: number, b: number): number {
return a + b;
}
export const PI = 3.14159;
export class Circulo {
constructor(public raio: number) {}
}
Exportação Padrão (Default Export)
Permite exportar uma única funcionalidade principal, importada sem chaves.
// calculadora.ts
export default function calcularArea(raio: number): number {
return 3.14 * raio * raio;
}
Importação de módulos
Importação Nomeada
Usa chaves com os nomes exatos das exportações.
import { somar, PI, Circulo } from "./mathUtils";
console.log(somar(5, 3)); // 8
console.log(PI); // 3.14159
const c = new Circulo(10);
Importação do Export Padrão
Importa sem chaves, podendo dar qualquer nome ao import.
import calcularArea from "./calculadora";
console.log(calcularArea(5)); // 78.5
Importando Tudo como Namespace
Importa todas exportações nomeadas sob um único identificador.
import * as math from "./mathUtils";
console.log(math.PI);
console.log(math.somar(2, 3));
const c = new math.Circulo(7);
Importar Apenas para Efeitos Colaterais
Quando o módulo não exporta nada ou apenas altera o ambiente global.
import "./polyfills";
Renomeando Imports e Exports
import { somar as add } from "./mathUtils";
console.log(add(1, 2)); // 3
Reexportação (Re-export)
Permite agrupar vários módulos e exportá-los juntos.
// index.ts
export { somar, PI, Circulo } from "./mathUtils";
export { default as calcularArea } from "./calculadora";
Módulos e Configuração TypeScript
A geração de código depende do target e do módulo configurados (tsconfig.json), podendo gerar CommonJS para Node.js, ES Modules para navegadores modernos, AMD, UMD, etc.
Resumo
- Módulos são arquivos com
import/export. - Exportações podem ser nomeadas ou padrão.
- Imports usam chaves para nomeadas e nome livre para padrão.
- É possível importar tudo sob um namespace.
- Reexportações permitem criar pontos únicos de exportação.
