馃 Modules, TypeScript Modules (m贸dulos en TypeScript)

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";