Utility Types - Tipos utilitarios
Son herramientas que ayudan a transformar tipos existentes. Muy útiles para reusar interfaces sin repetir código. Partial – todas opcionales type User = { id: number; name: string; email: string; }; function updateUser(id: number, data: Partial) { console.log(`Se actualizo el usuario: ${id} con`, data); } updateUser(1, { name: "Luis" }); // ✅ Required – todas obligatorias type Config = { host?: string; port?: number; }; function connect(cfg: Required) { console.log(`Conectando a ${cfg.host}:${cfg.port}`); } connect({ host: "localhost" }); // ❌ Error. falta una propiedad Readonly – propiedades inmutables type User = { id: number; name: string; }; const user: Readonly = { id: 1, name: "Luis" }; user.name = "Pepito"; // ❌ Error console.log(user); Pick – selecciona claves específicas type User = { id: number; name: string; email: string; }; type PublicUser = Pick; const user: PublicUser = { id: 1, name: "Luis" email: "test@gmail.com" // ❌ No permitido }; console.log(user); Omit – omite claves específicas type User = { id: number; name: string; password: string; }; type SafeUser = Omit; const user: SafeUser = { id: 1, name: "Luis" password: "test" // ❌ No permitido }; console.log(user); Utilidades de tipos en TypeScript con ejemplos

Son herramientas que ayudan a transformar tipos existentes. Muy útiles para reusar interfaces sin repetir código.
Partial
– todas opcionales
type User = {
id: number;
name: string;
email: string;
};
function updateUser(id: number, data: Partial<User>) {
console.log(`Se actualizo el usuario: ${id} con`, data);
}
updateUser(1, { name: "Luis" }); // ✅
Required
– todas obligatorias
type Config = {
host?: string;
port?: number;
};
function connect(cfg: Required<Config>) {
console.log(`Conectando a ${cfg.host}:${cfg.port}`);
}
connect({ host: "localhost" }); // ❌ Error. falta una propiedad
Readonly
– propiedades inmutables
type User = {
id: number;
name: string;
};
const user: Readonly<User> = {
id: 1,
name: "Luis"
};
user.name = "Pepito"; // ❌ Error
console.log(user);
Pick
– selecciona claves específicas
type User = {
id: number;
name: string;
email: string;
};
type PublicUser = Pick<User, "id" | "name">;
const user: PublicUser = {
id: 1,
name: "Luis"
email: "test@gmail.com" // ❌ No permitido
};
console.log(user);
Omit
– omite claves específicas
type User = {
id: number;
name: string;
password: string;
};
type SafeUser = Omit<User, "password">;
const user: SafeUser = {
id: 1,
name: "Luis"
password: "test" // ❌ No permitido
};
console.log(user);
Utilidades de tipos en TypeScript con ejemplos