Biblioteca estándar de TypeScript: una visión completa

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

Biblioteca estándar de TypeScript: una visión completa



TypeScript es un superconjunto de JavaScript fuertemente tipado que se compila a JS normal. Sin embargo, su poder no reside solo en su sistema de tipos. La biblioteca estándar incorporada de TypeScript proporciona herramientas potentes para trabajar con tipos, utilidades y metaprogramación. En este artículo, analizaremos los componentes clave de la biblioteca estándar de TypeScript, mostraremos ejemplos de su uso y daremos consejos prácticos.



¿Qué es la biblioteca estándar de TypeScript?

La biblioteca estándar de TypeScript es un conjunto de tipos, interfaces y utilidades integrados que se incluyen con el compilador. Incluye:

  • Tipos básicos (string, number, boolean, any, unknown, never, void).
  • Tipos utilitarios (Partial, Required, Pick, Omit, Record y otros).
  • Decoradores (característica experimental para metaprogramación).
  • Espacios de nombres (namespace) y módulos.
  • Tipos avanzados (Promise, Map, Set, WeakMap, WeakSet).
  • Tipos para trabajar con el DOM (se incluyen a través de lib: ["dom"]).


Tipos utilitarios: el corazón de la biblioteca

Los tipos utilitarios permiten transformar tipos existentes sin duplicar código. Veamos los más populares:



Partial y Required

interface User {  id: number;  name: string;  email: string;}

// Todos los campos se vuelven opcionalestype PartialUser = Partial<User>;

// Todos los campos se vuelven obligatorios (si eran opcionales)type RequiredUser = Required<PartialUser>;


Pick y Omit

interface Product {  id: number;  title: string;  price: number;  description: string;}

// Seleccionamos solo los campos necesariostype ProductPreview = Pick<Product, 'id' | 'title'>;

// Excluimos los campos innecesariostype ProductWithoutDesc = Omit<Product, 'description'>;


Record y Readonly

// Crea un objeto con claves y valores específicostype UserRoles = Record<'admin' | 'user' | 'guest', string>;

// Hace que todos los campos sean de solo lecturatype ReadonlyUser = Readonly<User>;


Trabajo con Promise y asincronía

TypeScript proporciona tipos integrados para trabajar con código asíncrono:

async function fetchData(): Promise<string> {  return "datos cargados";}

// Tipo para el resultado de Promisetype DataType = Awaited<ReturnType<typeof fetchData>>; // string


Decoradores: metaprogramación en TypeScript

Los decoradores son declaraciones especiales que permiten anotar y modificar clases, métodos, propiedades y parámetros. Se utilizan activamente en frameworks (Angular, NestJS).



Ejemplo de decorador de clase

function sealed(constructor: Function) {  Object.seal(constructor);  Object.seal(constructor.prototype);}

@sealedclass Calculator { add(a: number, b: number): number { return a + b; }}


Ejemplo de decorador de método

function log(target: any, key: string, descriptor: PropertyDescriptor) {  const original = descriptor.value;  descriptor.value = function (...args: any[]) {    console.log(`Método ${key} llamado con argumentos: ${args}`);    return original.apply(this, args);  };  return descriptor;}

class UserService { @log getUser(id: number): string { return `Usuario ${id}`; }}


Espacios de nombres (Namespaces)

Los espacios de nombres ayudan a organizar el código y evitar

Recommendations