Configuración de aplicaciones TypeScript: bibliotecas y enfoques

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Configuración de aplicaciones TypeScript: resumen de herramientas y enfoques



En el desarrollo moderno con TypeScript, la organización correcta de la configuración de la aplicación es una de las tareas clave. De cómo gestiones los ajustes depende la seguridad, portabilidad y capacidad de prueba del código. En este artículo, revisaremos las principales bibliotecas y herramientas para la configuración de aplicaciones TypeScript, sus características y ejemplos de uso.



¿Por qué es importante una configuración correcta?

La configuración incluye:

  • Variables de entorno (claves API, URL de base de datos)
  • Parámetros del entorno (development, staging, production)
  • Ajustes de frameworks y bibliotecas
  • Datos secretos (contraseñas, tokens)

El uso de TypeScript añade las ventajas de la tipificación estricta, lo que permite evitar errores en la etapa de compilación. Veamos las mejores herramientas para trabajar con la configuración.



1. dotenv — herramienta básica para variables de entorno

La biblioteca dotenv carga variables desde el archivo .env en process.env. En TypeScript se usa a menudo con tipos adicionales.



Instalación

npm install dotenvnpm install -D @types/node   # para tipos de process.env


Ejemplo de uso

// .envPORT=3000DATABASE_URL=mongodb://localhost:27017/mydbSECRET_KEY=mysecretkey

// config.tsimport dotenv from 'dotenv';dotenv.config();

interface AppConfig { port: number; databaseUrl: string; secretKey: string;}

export const config: AppConfig = { port: parseInt(process.env.PORT || '3000', 10), databaseUrl: process.env.DATABASE_URL || '', secretKey: process.env.SECRET_KEY || '',};


Ventajas: simplicidad, ligereza, estándar de facto.
Desventajas: no tiene validación, todos los valores son cadenas.



2. config — configuración jerárquica para Node.js

La biblioteca config permite organizar archivos de configuración por entornos (default.json, production.json, development.json).



Instalación

npm install confignpm install -D @types/config


Ejemplo de estructura

// config/default.json{    "server": {        "port": 3000    },    "db": {        "host": "localhost",        "port": 27017    }}

// config/production.json{ "server": { "port": 8080 }, "db": { "host": "production-db.example.com" }}

// app.tsimport config from 'config';

interface ServerConfig { port: number;}

const serverConfig = config.get<ServerConfig>('server');console.log(serverConfig.port); // 3000 en dev, 8080 en production


Ventajas: jerarquía, selección automática del entorno, soporte para TypeScript.
Desventajas: requiere sistema de archivos, no es adecuado para serverless.



3. convict — configuración con esquema y validación

convict permite definir un esquema estricto de configuración con tipos, valores predeterminados y validación.



Instalación

npm install convictnpm install -D @types/convict


Ejemplo

import convict from 'convict';

const config = convict({ env: { doc: 'Entorno de la aplicación', format: ['production', 'development', 'test'], default: 'development', env: 'NODE_ENV' }, port: { doc: 'Puerto de enlace', format: 'port', default: 3000, env: 'PORT' }, db: { host: { doc: 'Host de la base de datos', format: String, default: 'localhost', env: 'DB_HOST' }, port: { doc: 'Puerto de la base de datos', format: 'port', default: 5432, env: 'DB_PORT' } }

Recommendations