Saltar al contenido principal
Volver a Modulos y Namespaces

Módulos y Namespaces — Leccion 2

·15 min

Namespaces

Agrupa codigo en un espacio de nombres.

Namespaces

Los namespaces agrupan codigo relacionado bajo un solo nombre.

typescript
namespace Geometria {
  export function areaCirculo(radio: number): number {
    return Math.PI * radio * radio;
  }

  export function areaRectangulo(base: number, alto: number): number {
    return base * alto;
  }

  export const PI = 3.14159;
}

// Uso
Geometria.areaCirculo(5);
Geometria.PI;

Namespaces anidados

typescript
namespace App {
  export namespace Auth {
    export function login(usuario: string) { ... }
    export function logout() { ... }
  }

  export namespace Api {
    export function get(url: string) { ... }
    export function post(url: string, data: any) { ... }
  }
}

App.Auth.login("admin");
App.Api.get("/usuarios");

Merge de namespaces

typescript
// archivo1.ts
namespace Config {
  export const apiUrl = "https://api.example.com";
}

// archivo2.ts
namespace Config {
  export const timeout = 5000;
}

// Ambos se combinan
Config.apiUrl;  // "https://api.example.com"
Config.timeout; // 5000

Namespaces vs Módulos

Característica Módulos Namespaces
Separación Archivos separados Un archivo
Scope Global Namespace
Bundling Manual Automático
Uso moderno Si No

Nota: En modernos proyectos se usan módulos, no namespaces.

Ejercicio pratico

Crea un namespace 'Math' con funciones para sumar y multiplicar.

exercise.ts
Loading...
Resultado

Haz clic en "Ejecutar" para ver el resultado...

Curso de TypeScript — Aprende desde cero