Volver a la página principal
sábado 14 septiembre 2024
6

Cómo utilizar namespaces en TypeScript

¿Qué son los namespaces en TypeScript?

Los namespaces en TypeScript son una forma de agrupar código en módulos lógicos, lo que permite organizar mejor las funciones, clases e interfaces dentro de un proyecto. Ayudan a evitar conflictos de nombres cuando se trabaja con múltiples componentes que podrían tener el mismo identificador.

Aunque los namespaces eran muy utilizados en versiones anteriores, hoy en día se recomienda usar módulos ES6. Sin embargo, siguen siendo útiles para ciertos casos, como aplicaciones de gran escala o cuando no se pueden usar módulos.

Sintaxis básica

namespace MiEspacioDeNombres {
  export class Persona {
    constructor(public nombre: string) {}
  }
}

El uso de la palabra clave export es crucial para hacer que los componentes dentro del namespace sean accesibles desde fuera de este.

Ejemplo básico

namespace Utilidades {
  export function saludo(nombre: string) {
    return `Hola, ${nombre}!`;
  }
}

console.log(Utilidades.saludo("Carlos"));  // Resultado: Hola, Carlos!

En este ejemplo, la función saludo se encapsula dentro del namespace Utilidades, evitando colisiones con otras funciones de igual nombre fuera del namespace.

Algunos ejemplos de uso de namespaces en TypeScript

Ejemplo 1: Agrupando clases y funciones

Un namespace puede contener múltiples clases y funciones relacionadas, agrupándolas de manera lógica.

namespace Geometria {
  export class Rectangulo {
    constructor(public ancho: number, public alto: number) {}

    area(): number {
      return this.ancho * this.alto;
    }
  }

  export function calcularPerimetro(ancho: number, alto: number): number {
    return 2 * (ancho + alto);
  }
}

const rect = new Geometria.Rectangulo(10, 5);
console.log(rect.area());  // Resultado: 50
console.log(Geometria.calcularPerimetro(10, 5));  // Resultado: 30

Ejemplo 2: Namespaces anidados

Puedes anidar namespaces para crear una estructura jerárquica y organizar mejor tu código.

namespace MiApp {
  export namespace Utilidades {
    export function convertirMayusculas(texto: string): string {
      return texto.toUpperCase();
    }
  }

  export namespace Validaciones {
    export function esNumero(valor: any): boolean {
      return !isNaN(valor);
    }
  }
}

console.log(MiApp.Utilidades.convertirMayusculas("hola"));  // Resultado: HOLA
console.log(MiApp.Validaciones.esNumero(123));  // Resultado: true

Ejemplo 3: Utilizando alias de namespaces

Puedes crear alias de namespaces para evitar escribir nombres largos repetidamente.

namespace Utilidades {
  export function sumar(a: number, b: number): number {
    return a + b;
  }
}

import U = Utilidades;
console.log(U.sumar(2, 3));  // Resultado: 5

Referencia oficial

Para más información sobre el uso de namespaces, consulta la documentación oficial de TypeScript.

Etiquetas:
typescript
Compartir:
Creado por:
Author photo

Jorge García

Fullstack developer