TypeScriptLección 14 de 16

Módulos y namespace: cómo organizar el código

En un proyecto real cada archivo es un módulo: exportas lo que otros necesitan y lo importas donde se usa. Esta lección va en un solo archivo, así que un objeto normal hace de módulo.

Lo esencial

  • Un archivo con import o export es un módulo con su propio ámbito.
  • export function format() {...} en un archivo e import { format } from "./money" en otro.
  • import type trae solo tipos y la línea desaparece al compilar.
  • namespace es anterior a los módulos ES; no está obsoleto, pero TypeScript recomienda módulos para el código nuevo.
  • Ejecutar .ts directamente en Node.js y la opción erasableSyntaxOnly rechazan namespace, igual que enum.

Ejemplo

// In a real project every file is a module:////   // money.ts//   export type Currency = "USD" | "EUR";//   export function format(amount: number, currency: Currency): string { ... }////   // main.ts//   import { format } from "./money";//   import type { Currency } from "./money"; // type-only, erased after compiling//// The lesson runs in one file, so a plain object plays the role of the module.type Currency = "USD" | "EUR"; const money = {  format(amount: number, currency: Currency): string {    return `${amount.toFixed(2)} ${currency}`;  },  add(a: number, b: number): number {    return Math.round((a + b) * 100) / 100;  },}; console.log(money.format(money.add(0.1, 0.2), "EUR"));

El comentario muestra cómo sería money en dos archivos. El objeto money agrupa funciones relacionadas bajo un nombre, igual que lo haría un módulo.

Tarea

Cómo usar el editor⌘ Enter o Ctrl Enter ejecuta el código, ⇧ ⌘ Enter comprueba la tarea.Tab y Mayús Tab sangran la línea o la selección; Esc y luego Tab sale del editor.La comprobación compara lo que imprimió el programa con la tarea; los espacios al final de línea no cuentan.Tras dos comprobaciones fallidas puedes ver la solución. Tu código se guarda en este navegador.

Reescribe namespace Temperature como un objeto temperature, añade el método toCelsius e imprime cuatro líneas: «0C = 32F», «25C = 77F», «100C = 212F», «212F = 100C».

Salida

Aquí aparecerá lo que imprima el programa.