TypeScript
Tutorial TypeScript: Módulos
TypeScript módulos: organización de código. Domina la organización de código en TypeScript utilizando módulos con ejemplos prácticos y detallados.
Aprende TypeScript y certifícateDefinición y Estructura
Los módulos en TypeScript son una forma de organizar y dividir el código en bloques lógicos reutilizables. Cada módulo puede contener cualquier combinación de funciones, clases, interfaces, tipos y otras abstracciones que pueden ser exportadas para su uso en otros módulos.
En TypeScript, un archivo de código es un módulo. No se necesita ninguna declaración explícita para convertir un archivo en un módulo. En vez de eso, cualquier declaración de export
o import
en el archivo lo convierte automáticamente en un módulo.
Aquí hay un ejemplo de un módulo simple en TypeScript:
// modulo.ts
export function suma(a: number, b: number): number {
return a + b;
}
export function resta(a: number, b: number): number {
return a - b;
}
En el ejemplo anterior, el archivo modulo.ts
define dos funciones, suma
y resta
, y luego las exporta para que otros módulos las usen.
Importación y Exportación
La importación y exportación de abstracciones entre módulos es fundamental para aprovechar la modularidad del código. TypeScript utiliza la sintaxis de import
y export
de ES6 para permitir la importación y exportación de abstracciones.
Exportación
Existen dos tipos de exportaciones en TypeScript: exportaciones nombradas y exportaciones predeterminadas.
Exportaciones nombradas
Las exportaciones nombradas son útiles cuando un módulo puede exportar varias abstracciones. Cada exportación se identifica con un nombre.
// modulo.ts
export function suma(a: number, b: number): number {
return a + b;
}
export function resta(a: number, b: number): number {
return a - b;
}
En el ejemplo anterior, suma
y resta
son exportaciones nombradas. También podrían omitirse los 'export' de las declaraciones y exportarse a continuación:
// modulo.ts
function suma(a: number, b: number): number {
return a + b;
}
function resta(a: number, b: number): number {
return a - b;
}
export { suma, resta };
Exportaciones predeterminadas
Cada módulo puede tener una única exportación predeterminada. Es útil cuando un módulo se asocia principalmente con una abstracción en particular.
// modulo.ts
export default function(a: number, b: number): number {
return a + b;
}
En este caso, la función que suma dos números es la exportación predeterminada del módulo.
Importación
El proceso de importación se hace utilizando la palabra clave import
. Para importar abstracciones nombradas, se usan sus nombres exactos. Para importar una exportación predeterminada, puede usarse cualquier nombre.
Importación de exportaciones nombradas
// app.ts
import { suma, resta } from './modulo';
console.log(suma(2, 1)); // Output: 3
console.log(resta(2, 1)); // Output: 1
Importación de exportación predeterminada
// app.ts
import suma from './modulo';
console.log(suma(1, 2)); // Output: 3
En el ejemplo anterior, el nombre suma
se usa para importar la exportación predeterminada del módulo modulo.ts
. Podría haberse usado cualquier nombre, al ser una exportación predeterminada declarada mediante default
. Nótese que para importar una exportación predeterminada, no se deben usar llaves {}
.
Conclusión
Los módulos en TypeScript ofrecen una forma eficaz de organizar y encapsular el código. Facilitan la creación de componentes de código reutilizables, mejorando la legibilidad, el mantenimiento y la reutilización del código. Con el uso de import
y export
, los módulos pueden compartir sus abstracciones de forma controlada, permitiendo una colaboración segura entre diferentes partes del código.
Otras 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
Instalación Y Configuración De Typescript
Introducción Y Entorno
Tipos De Datos, Variables Y Constantes
Sintaxis
Operadores Y Expresiones
Sintaxis
Control De Flujo
Sintaxis
Funciones Y Parámetros Tipados
Sintaxis
Funciones Flecha Y Contexto
Sintaxis
Enums
Sintaxis
Type Aliases Y Aserciones De Tipo
Sintaxis
Clases Y Objetos
Programación Orientada A Objetos
Interfaces Y Su Implementación
Programación Orientada A Objetos
Modificadores De Acceso Y Encapsulación
Programación Orientada A Objetos
Herencia Y Clases Abstractas
Programación Orientada A Objetos
Polimorfismo
Programación Orientada A Objetos
Decoradores Básicos
Programación Orientada A Objetos
Propiedades Y Métodos
Programación Orientada A Objetos
Inmutabilidad
Programación Funcional
Funciones Puras Y Efectos Secundarios
Programación Funcional
Funciones De Primera Clase
Programación Funcional
Funciones De Alto Orden
Programación Funcional
Conceptos Básicos E Inmutabilidad
Programación Funcional
Funciones De Primera Clase Y Orden Superior
Programación Funcional
Composición De Funciones
Programación Funcional
Métodos Funcionales De Arrays (Map, Filter, Reduce)
Programación Funcional
Tipos Literales Y Tipos Condicionales
Tipos Intermedios Y Avanzados
Tipos Genéricos Básicos
Tipos Intermedios Y Avanzados
Tipos De Unión E Intersección
Tipos Intermedios Y Avanzados
Tipos De Utilidad (Partial, Required, Pick, Etc)
Tipos Intermedios Y Avanzados
Unknown, Never Y Tipos Especiales
Tipos Intermedios Y Avanzados
Tipos Mapped
Tipos Intermedios Y Avanzados
Genéricos Con Clases E Interfaces
Tipos Intermedios Y Avanzados
Módulos
Namespaces Y Módulos
Namespaces
Namespaces Y Módulos
Resolución De Módulos
Namespaces Y Módulos
Exportación E Importación De Módulos
Namespaces Y Módulos
Introducción A Módulos
Namespaces Y Módulos
Testing Unitario En Typescript
Testing
Ejercicios de programación de TypeScript
Evalúa tus conocimientos de esta lección Módulos con nuestros retos de programación de tipo Test, Puzzle, Código y Proyecto con VSCode, guiados por IA.
Funciones
Reto composición de funciones
Reto tipos especiales
Reto tipos genéricos
Módulos
Polimorfismo
Funciones TypeScript
Interfaces
Funciones puras
Reto namespaces
Funciones flecha
Polimorfismo
Operadores
Conversor de unidades
Funciones flecha
Control de flujo
Herencia
Clases
Proyecto validación de tipado
Clases y objetos
Encapsulación
Herencia
Proyecto sistema de votación
Reto genéricos con clases
Inmutabilidad
Interfaces
Funciones de alto orden
Reto map y filter
Control de flujo
Interfaces
Reto funciones orden superior
Herencia y clases abstractas
Reto tipos mapped
Herencia de clases
Reto funciones puras
Variables y constantes
Introducción a TypeScript
Reto testing unitario
Funciones de primera clase
Clases
OOP y CRUD en TypeScript
Interfaces y su implementación
Tipos genéricos
Namespaces
Operadores y expresiones
Proyecto generador de contraseñas
Reto unión e intersección
Encapsulación
Tipos de unión e intersección
Tipos de unión e intersección
Reto hola mundo en TS
Variables y constantes
Funciones puras
Control de flujo
Introducción a TypeScript
Resolución de módulos
Control de flujo
Reto tipos de utilidad
Reto tipos literales y condicionales
Reto exportar e importar
Propiedades y métodos
Tipos de utilidad
Clases y objetos
Tipos de datos, variables y constantes
Proyecto Minigestor de tareas
Operadores
Funciones flecha y contexto
Proyecto Inventario de productos
Funciones
Reto type aliases
Funciones de alto orden
Funciones y parámetros tipados
Tipos literales
Reto enums
Tipos de utilidad
Modificadores de acceso y encapsulación
Polimorfismo
Tipos genéricos
Reto módulos
Tipos literales
Inmutabilidad
Proyecto Generator de datos
Variables y constantes
Funciones de primera clase
En esta lección
Objetivos de aprendizaje de esta lección
- Comprender el concepto de módulos en TypeScript como bloques lógicos reutilizables.
- Aprender cómo crear un módulo en TypeScript a través de la sintaxis de
export
. - Conocer los dos tipos de exportaciones en TypeScript: exportaciones nombradas y exportaciones predeterminadas.
- Aprender a importar exportaciones nombradas y predeterminadas utilizando la sintaxis de
import
. - Entender la importancia de los módulos para la organización y encapsulación del código, mejorando la legibilidad y el mantenimiento.
- Reconocer cómo los módulos facilitan la colaboración y la reutilización del código en diferentes partes de una aplicación.