CodingTube

Pick y Omit

Selecciona ciertos tipos específicos.

Pick

Pick es un tipo genérico que permite crear un nuevo tipo tomando solo algunas propiedades de otro tipo o interfaz. Es útil cuando deseas crear un tipo más específico a partir de uno existente.

Por ejemplo, de la siguiente interfaz Todo:

interface Todo {
  title: string;
  description: string;
  completed: boolean;
}

Puedes crear un nuevo tipo TodoPreview que solo incluya las propiedades title y completed:

type TodoPreview = Pick<Todo, "title" | "completed">;
 
const todo: TodoPreview = {
  title: "Clean room",
  completed: false,
};

Omit

Omit es el opuesto de Pick. Permite crear un nuevo tipo excluyendo algunas propiedades de otro tipo o interfaz. Es útil cuando deseas crear un tipo que no incluya ciertas propiedades.

Por ejemplo, si ahora nuestra interfaz Todo tiene tiene las siguientes propiedades:

interface Todo {
  title: string;
  description: string;
  completed: boolean;
  createdAt: number;
}

Pero queremos crear un tipo que no incluya la propiedad description, podemos hacerlo así:

type TodoPreview = Omit<Todo, "description">;

const todo: TodoPreview = {
  title: "Clean room",
  completed: false,
  createdAt: 1615544252770,
};

Explicación en video: