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);{ 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);{ 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.