TypeScript
Tutorial TypeScript: Resolución de módulos
TypeScript módulos: organización de código. Aprende a organizar tu código en TypeScript utilizando módulos con ejemplos prácticos.
Aprende TypeScript GRATIS y certifícateTypeScript permite trabajar con módulos para organizar el código en unidades lógicas, haciendo el desarrollo de aplicaciones complejas más manejable y escalable. Cuando se trabaja con módulos, TypeScript tiene dos sistemas principales de resolución de módulos: Node y Classic.
Resolución de módulos
Resolución de Módulos Node
Este es el sistema de resolución de módulos que TypeScript utiliza por defecto. En este sistema de resolución, TypeScript trata de imitar el comportamiento del módulo de resolución de Node.js. Cuando se intenta importar un módulo utilizando una ruta relativa, TypeScript buscará ese módulo en el mismo directorio. Si la ruta del módulo es absoluta, TypeScript buscará el módulo en el directorio especificado en la ruta.
Por ejemplo:
// archivo en la ruta 'src/models/user.ts'
export class User {
constructor(public name: string) {}
}
// archivo en la ruta 'src/controllers/userController.ts'
import { User } from '../models/user';
let user = new User('John Doe');
En este ejemplo, TypeScript buscará el módulo 'User' en el archivo 'user.ts' que se encuentra en el directorio 'models' que está al mismo nivel que el directorio 'controllers'.
Si el módulo que se intenta importar no es relativo ni absoluto, TypeScript buscará el módulo en 'node_modules', que es el comportamiento estándar en Node.js. Por ejemplo:
// en un archivo cualquiera
import * as _ from 'lodash';
_.isEmpty({}); // true
En este ejemplo, TypeScript buscará el módulo 'lodash' en el directorio 'node_modules'.
Resolución de Módulos Classic
Este sistema de resolución es el método original de TypeScript. Cuando se intenta importar un módulo con una ruta relativa, TypeScript buscará ese módulo en el mismo directorio. Si la ruta del módulo es absoluta, TypeScript buscará en la raíz del proyecto y luego en el directorio especificado en la ruta.
// archivo en la ruta 'src/models/user.ts'
export class User {
constructor(public name: string) {}
}
// archivo en la ruta 'src/controllers/userController.ts'
import { User } from 'models/user';
let user = new User('John Doe');
En este ejemplo, TypeScript buscará el módulo 'User' en el archivo 'user.ts' que se encuentra en el directorio 'models' ubicado en la raíz del proyecto.
Configuración del compilador para módulos
La configuración del compilador para módulos se realiza en el archivo 'tsconfig.json', donde se pueden establecer diferentes opciones.
Para establecer el sistema de resolución de módulos, se utiliza la opción 'moduleResolution':
{
"compilerOptions": {
"moduleResolution": "node"
}
}
En este ejemplo, se está configurando TypeScript para usar el sistema de resolución de módulos de Node.
Para definir el objetivo del módulo de JavaScript al que se debe compilar, se utiliza la opción 'module':
{
"compilerOptions": {
"module": "commonjs"
}
}
En este ejemplo, se está configurando TypeScript para compilar a módulos CommonJS. Otros valores posibles incluyen 'amd', 'umd', 'system', 'es2015', 'es2020', 'esnext', etc.
Para establecer rutas base para la resolución de módulos, se puede usar la opción 'baseUrl':
{
"compilerOptions": {
"baseUrl": "./src"
}
}
En este ejemplo, TypeScript tratará './src' como la raíz del proyecto para la resolución de módulos.
Además, se pueden configurar alias para rutas de módulos usando la opción 'paths':
{
"compilerOptions": {
"baseUrl": "./src",
"paths": {
"@models/*": ["models/*"]
}
}
}
En este ejemplo, '@models' puede usarse como alias para referirse al directorio 'models' en la raíz del proyecto.
Ejercicios de esta lección Resolución de módulos
Evalúa tus conocimientos de esta lección Resolución de módulos 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 los sistemas de resolución de módulos Node y Classic en TypeScript.
- Conocer cómo se importan módulos utilizando rutas relativas y absolutas.
- Entender cómo TypeScript busca módulos en el directorio actual y en 'node_modules'.
- Aprender a configurar el compilador TypeScript para utilizar el sistema de resolución de módulos deseado.
- Familiarizarse con la configuración de rutas base y alias para mejorar la resolución de módulos.