O que é?

Em TypeScript, os utility types são tipos internos que fornecem funcionalidades úteis para trabalhar com outros tipos. Eles permitem criar novos tipos a partir de tipos existentes de maneira conveniente e reutilizável. Alguns exemplos comuns de utility types incluem Partial, Omit e Pick.

Por exemplo, o Partial permite criar um novo tipo tornando todas as propriedades de um tipo existente opcionais. O Omit permite omitir um subconjunto de propriedades de um tipo existent. O Pick permite selecionar um subconjunto de propriedades de um tipo existente.

Como utilizar?

type User = {
  id: number;
  username: string;
  password: string;
  createdAt: Date;
  updatedAt: Date;
};

const user: User = {
  id: 1,
  username: 'agustinhopneto',
  password: 'typescript123',
  createdAt: new Date(),
  updatedAt: new Date(),
};

type PartialUser = Partial<User>;

type NewUser = Omit<User, 'id' | 'username'>;

type SearchUser = Pick<User, 'username'>;

const searchUser: SearchUser = {
  username: 'agustinhopneto',
};