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

Apr 18, 2025 - 03:43
 0
Utility Types - Tipos utilitarios

Banner con las utilidades que podemos encontrar en TypeScript

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