Módulos en TypeScript
Descripción: Los módulos en TypeScript son una manera de organizar y encapsular el código, permitiendo dividir el proyecto en diferentes archivos y reutilizar el código. Los módulos permiten que el código sea más mantenible y fácil de gestionar, especialmente en proyectos grandes.
Sintaxis Básica
// mathUtils.ts
// Exportar una función
export function add(x: number, y: number): number {
return x + y;
}
// Exportar otra función
export function subtract(x: number, y: number): number {
return x - y;
}
// Exportar una clase
export class Calculator {
multiply(x: number, y: number): number {
return x * y;
}
divide(x: number, y: number): number {
if (y === 0) {
throw new Error("Division by zero");
}
return x / y;
}
}
En este archivo, estamos definiendo y exportando dos funciones (add
y subtract
) y una clase (Calculator
).
Importar y Usar el Módulo
// main.ts
// Importar funciones y clases desde el módulo mathUtils
import { add, subtract, Calculator } from './mathUtils';
const result1 = add(10, 5);
const result2 = subtract(10, 5);
const calculator = new Calculator();
const result3 = calculator.multiply(10, 5);
const result4 = calculator.divide(10, 5);
console.log(result1); // 15
console.log(result2); // 5
console.log(result3); // 50
console.log(result4); // 2
En este archivo, estamos importando las funciones y la clase exportadas desde mathUtils.ts
y utilizándolas para realizar algunas operaciones.
Configuración del Proyecto
// tsconfig.json
{
"compilerOptions": {
"target": "es6",
"module": "commonjs",
"strict": true,
"esModuleInterop": true,
"skipLibCheck": true,
"forceConsistentCasingInFileNames": true,
"outDir": "./dist"
},
"include": ["src"],
"exclude": ["node_modules"]
}
Asegúrate de tener un archivo tsconfig.json
configurado para tu proyecto TypeScript.
Compilar y Ejecutar
Compilar el código TypeScript:
npx tsc
Esto generará los archivos JavaScript correspondientes en la carpeta dist
.
Ejecutar el código compilado:
node dist/main.js
Explicación del Código
Definición del Módulo (mathUtils.ts):
- Exportar Funciones: Las funciones
add
ysubtract
se exportan para que puedan ser utilizadas en otros módulos. - Exportar Clase: La clase
Calculator
también se exporta para su reutilización.
Uso del Módulo (main.ts):
- Importar: Se importan las funciones y la clase desde
mathUtils.ts
usando la sintaxis de importación de ES6. - Utilización: Se utilizan las funciones y la clase importadas para realizar operaciones matemáticas y se imprimen los resultados.
Ventajas del Uso de Módulos:
- Encapsulación: Cada módulo tiene su propio ámbito, evitando colisiones de nombres.
- Reutilización: Los módulos pueden exportar funciones, clases, interfaces, etc., que pueden ser importados y reutilizados en otros módulos.
- Mantenibilidad: Facilita la organización del código en archivos más pequeños y manejables.