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
.