Omit y Pick en Typescript
En TypeScript, Omit y Pick son utilidades genéricas que permiten manipular tipos para crear nuevos a partir de los existentes, seleccionando o excluyendo propiedades de un objeto. Estas utilidades son muy útiles para trabajar con estructuras de datos de manera más flexible y reutilizable.
Pick
Pick se utiliza para seleccionar un subconjunto de propiedades de un tipo. Es útil cuando solo necesitas algunas propiedades específicas de un objeto.
Sintaxis:
Pick<Tipo, Claves>;Tipo:El tipo del que se seleccionan las propiedadesClaves: Las claves específicas que deseas incluir en el nuevo tipo (usando un string literal o un conjunto de strings).
Ejemplo:
type Usuario = { id: number; nombre: string; email: string; activo: boolean;};
// Solo seleccionamos "nombre" y "email"type UsuarioPublico = Pick<Usuario, "nombre" | "email">;
const usuario: UsuarioPublico = { nombre: "Carlos", email: "carlos@example.com",};Aquí, el nuevo tipo UsuarioPublico incluye únicamente las propiedades nombre y email del tipo original Usuario
Omit
Omit se utiliza para excluir propiedades específicas de un tipo. Es lo opuesto a Pick y resulta útil cuando quieres todas las propiedades excepto algunas.
Sintaxis:
Omit<Tipo, Claves>;Tipo:El tipo baseClaves:Las claves específicas que deseas excluir del nuevo tipo.
Ejmeplo:
type Usuario = { id: number; nombre: string; email: string; activo: boolean;};
// Excluimos "id" y "activo"type UsuarioSinIds = Omit<Usuario, "id" | "activo">;
const usuario: UsuarioSinIds = { nombre: "Carlos", email: "carlos@example.com",};En este caso, el nuevo tipo UsuarioSinIds incluye todas las propiedades de Usuario excepto id y activo.
Comparación entre Pick y Omit
| Función | Propósito | Ejemplo |
|---|---|---|
Pick | Selecciona propiedades específicas | Crear un tipo solo con las propiedades nombre y email. |
Omit | Excluye propiedades específicas | Crear un tipo que no incluya id y activo. |