En TypeScript, los utility types son tipos internos que proporcionan funcionalidades útiles para trabajar con otros tipos. Permiten crear nuevos tipos a partir de tipos existentes de manera conveniente y reutilizable. Algunos ejemplos comunes de utility types incluyen Partial, Omit y Pick.
Por ejemplo, Partial permite crear un nuevo tipo haciendo que todas las propiedades de un tipo existente sean opcionales. Omit permite omitir un subconjunto de propiedades de un tipo existente. Pick permite seleccionar un subconjunto de propiedades de un 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 un usuario con varias propiedades, incluyendo id, username, password, createdAt y updatedAt. Luego, creamos una variable user que es una instancia de ese tipo.Partial, creamos un nuevo tipo llamado PartialUser. Este tipo hace que todas las propiedades de User sean opcionales, lo que significa que puedes crear objetos PartialUser con algunas o todas las propiedades de User siendo undefined.Omit, creamos un nuevo tipo llamado NewUser que excluye las propiedades 'id' y 'username' de User. Por lo tanto, un NewUser solo tendría las propiedades password, createdAt y updatedAt.Pick, definimos un nuevo tipo SearchUser que incluye solo la propiedad 'username' de User.searchUser del tipo SearchUser, que en este caso incluye solo la propiedad username.