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.
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',
};
User que representa um usuário com várias propriedades, incluindo id, username, password, createdAt e updatedAt. Em seguida, criamos uma variável user que é uma instância desse tipo.Partial, criamos um novo tipo chamado PartialUser. Esse tipo torna todas as propriedades de User opcionais, o que significa que você pode criar objetos PartialUser com algumas ou todas as propriedades de User sendo undefined.Omit, criamos um novo tipo chamado NewUser que exclui as propriedades 'id' e 'username' de User. Portanto, um NewUser só teria as propriedades password, createdAt e updatedAt.Pick, definimos um novo tipo SearchUser que inclui apenas a propriedade 'username' de User.searchUser do tipo SearchUser, que neste caso inclui apenas a propriedade username.