Hay tres factores a considerar cuando escribimos módulos en TypeScript.
- La syntaxis: Que sintaxis quiero utilizar para importar/exportar cosas.
- La resolucion del módulo: ¿Cuál es la relación entre los nombres de los módulos (o sus rutas) y los archivos en disco?
- Módulo de salida objetivo: ¿Cómo debería lucir el archivo JavaScript generado por mi módulo?
Sintaxis de ES
// @filename: hola-mundo.js
export default function holaMundo() {
console.log("Hola, Mundo!");
}
Después esto se importa de esta forma:
import hola from "./hola-mundo.js";
Además de la expresión default export
, podemos exportar mas variables, funciones, clases, types, etc. utilizando export
adicionales omitiendo la palabra default
.
// @filename: math.js
export const pi = 3.1416;
export default class MiClase {}
Esto puede ser utilizado en otro módulo de la siguiente forma:
import { pi } from "./math";
Uso de aliases
También es posible utilizar un alias al momento de importar desde otros módulos.
import { pi as valorDePi } from "./math";
Se pueden combinar estas formas de importar.
import MiClase, { pi } from "./math";
O incluso se pueden importar todos los elementos exportables dentro de otro contenedor o namespace.
import * as math from "./math";
console.log(math.pi); // <- 3.1416
Un caso mas es cuando importamos un módulo sin utilizar ninguno de los elementos que lo componen.
import "./math";