AnyCompiler

Módulos y la Librería Estándar

El código TypeScript a menudo se divide entre varios archivos, conectados con import y export — la misma sintaxis que usa el JavaScript moderno. Este compilador ejecuta un solo archivo a la vez, así que los imports entre varios archivos no se pueden demostrar directamente aquí, pero todo lo demás en esta lección se ejecuta exactamente como se muestra.

Utility types — construir nuevos tipos a partir de los existentes

TypeScript viene con un puñado de utility types integrados que transforman un tipo que ya tienes. Partial<T> hace que cada propiedad de T sea opcional — útil para algo como una función de actualización donde solo proporcionas los campos que están cambiando.

interface Product {
  id: number;
  name: string;
  price: number;
}

function updateProduct(product: Product, changes: Partial<Product>): Product {
  return { ...product, ...changes };
}

const original: Product = { id: 1, name: "Keyboard", price: 50 };
const updated = updateProduct(original, { price: 45 });
console.log(updated);
Output
{ id: 1, name: 'Keyboard', price: 45 }

Pick<T, Keys> construye un nuevo tipo con solo las propiedades listadas de T; Record<Keys, Type> construye un tipo de objeto donde cada key de Keys se asigna al mismo tipo de valor. Ambos son formas de derivar un tipo nuevo y preciso a partir de uno que ya definiste, en vez de escribirlo a mano.

interface Product {
  id: number;
  name: string;
  price: number;
}

type ProductSummary = Pick<Product, "id" | "name">;

const summary: ProductSummary = { id: 1, name: "Keyboard" };
console.log(summary);
Output
{ id: 1, name: 'Keyboard' }

Ese es el núcleo del sistema de tipos de TypeScript sobre JavaScript. Desde aquí, el mejor siguiente paso es practicar — elige una idea pequeña y constrúyela, apoyándote en los tipos para detectar errores en el camino.

← Type NarrowingMás lecciones próximamente