TypeScript
Tutorial TypeScript: Namespaces
TypeScript namespaces: organización y uso. Aprende a organizar tu código en TypeScript utilizando namespaces con ejemplos prácticos.
Aprende TypeScript GRATIS y certifícateLos namespaces son una forma que TypeScript utiliza para organizar el código en bloques lógicos y separar las áreas de preocupación. Los namespaces pueden ser útiles para evitar conflictos de nombres en el código al agrupar entidades que trabajan juntas. En versiones anteriores de TypeScript, los namespaces se utilizaban para organizar el código en módulos, pero desde la introducción de los módulos ES6, los namespaces son menos comunes en el desarrollo de TypeScript. En general, se recomienda el uso de módulos en lugar de namespaces en código moderno.
Definición de un namespace
Un namespace en TypeScript es un espacio que envuelve a un conjunto de funciones, clases, interfaces y otros namespaces también. Los elementos dentro de un namespace están separados del exterior, evitando así conflictos de nombres.
Aquí se presenta un ejemplo básico de un namespace en TypeScript, definido por la palabra clave namespace
:
namespace MiNamespace {
export class MiClase {
constructor(public mensaje: string) {}
log(): void {
console.log(this.mensaje);
}
}
export interface MiInterface {
campo1: string;
campo2: number;
}
export function miFuncion(parametro: string): string {
return "Hola, " + parametro;
}
}
En este ejemplo, MiNamespace
contiene una clase MiClase
, una interfaz MiInterface
, y una función miFuncion
. Nótese que las entidades dentro del namespace están marcadas con la palabra clave export
. Esto significa que estas entidades están disponibles fuera del namespace. Si no se marcara con export
, las entidades estarían disponibles únicamente dentro del namespace.
Uso de un namespace
Para utilizar las entidades definidas dentro de un namespace, se debe anteponer el nombre del namespace a la entidad, separados por un punto. Aquí se muestra un ejemplo de cómo utilizar el namespace definido anteriormente:
let miObjeto = new MiNamespace.MiClase("Hola mundo");
miObjeto.log();
let miInterfaz: MiNamespace.MiInterface = { campo1: "Test", campo2: 10 };
console.log(MiNamespace.miFuncion("Juan"));
Namespaces anidados
Un namespace puede contener otros namespaces, creando así una estructura jerárquica. Aquí se muestra un ejemplo de un namespace anidado:
namespace NamespaceExterno {
export namespace NamespaceInterno {
export class MiClase {
constructor(public mensaje: string) {}
log(): void {
console.log(this.mensaje);
}
}
}
}
Para acceder a las entidades dentro de un namespace anidado, se debe especificar la ruta completa:
let miObjeto = new NamespaceExterno.NamespaceInterno.MiClase("Hola mundo");
miObjeto.log();
Los namespaces proporcionan una forma eficaz de organizar el código y evitar conflictos de nombres. Sin embargo, con la introducción de los módulos ES6 en TypeScript, los namespaces se están volviendo menos comunes. Aun así, en ciertas circunstancias, los namespaces pueden ser útiles para agrupar de manera lógica funciones, clases, interfaces y otros namespaces.
Ejercicios de esta lección Namespaces
Evalúa tus conocimientos de esta lección Namespaces con nuestros retos de programación de tipo Test, Puzzle, Código y Proyecto con VSCode, guiados por IA.
Funciones
Funciones de primera clase
Tipos de utilidad
Clases
OOP y CRUD en TypeScript
Tipos literales
Namespaces
Módulos
Funciones TypeScript
Encapsulación
Interfaces
Funciones puras
Variables y constantes
Funciones flecha
Funciones puras
Control de flujo
Resolución de módulos
Control de flujo
Polimorfismo
Operadores
Funciones flecha
Herencia
Clases y objetos
Clases
Operadores
Encapsulación
Herencia
Funciones
Tipos de unión e intersección
Funciones de alto orden
Inmutabilidad
Interfaces
Funciones de alto orden
Tipos de unión e intersección
Tipos genéricos
Control de flujo
Polimorfismo
Interfaces
Tipos literales
Tipos de utilidad
Tipos genéricos
Inmutabilidad
Herencia de clases
Variables y constantes
Variables y constantes
Funciones de primera clase
Introducción a TypeScript
Todas las lecciones de TypeScript
Accede a todas las lecciones de TypeScript y aprende con ejemplos prácticos de código y ejercicios de programación con IDE web sin instalar nada.
Introducción A Typescript
Introducción Y Entorno
Variables Y Constantes
Sintaxis
Operadores
Sintaxis
Control De Flujo
Sintaxis
Funciones
Sintaxis
Funciones Flecha
Sintaxis
Clases Y Objetos
Programación Orientada A Objetos
Interfaces
Programación Orientada A Objetos
Encapsulación
Programación Orientada A Objetos
Herencia
Programación Orientada A Objetos
Polimorfismo
Programación Orientada A Objetos
Inmutabilidad
Programación Funcional
Funciones Puras
Programación Funcional
Funciones De Primera Clase
Programación Funcional
Funciones De Alto Orden
Programación Funcional
Tipos Literales
Tipos De Datos Avanzados
Tipos Genéricos
Tipos De Datos Avanzados
Tipos De Unión E Intersección
Tipos De Datos Avanzados
Tipos De Utilidad
Tipos De Datos Avanzados
Módulos
Namespaces Y Módulos
Namespaces
Namespaces Y Módulos
Resolución De Módulos
Namespaces Y Módulos
Certificados de superación de TypeScript
Supera todos los ejercicios de programación del curso de TypeScript y obtén certificados de superación para mejorar tu currículum y tu empleabilidad.
En esta lección
Objetivos de aprendizaje de esta lección
- Comprender qué son los namespaces en TypeScript y su propósito en la organización del código.
- Aprender cómo definir un namespace y qué entidades pueden contener.
- Conocer cómo se marcan las entidades con
export
para que sean accesibles fuera del namespace. - Entender cómo utilizar las entidades definidas dentro de un namespace en otras partes del código.
- Reconocer la ventaja de utilizar namespaces anidados para crear una estructura jerárquica y lógica del código.