Skip to content

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 propiedades
  • Claves: 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 base
  • Claves: 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ónPropósitoEjemplo
PickSelecciona propiedades específicasCrear un tipo solo con las propiedades nombre y email.
OmitExcluye propiedades específicasCrear un tipo que no incluya id y activo.