TypeScript: 5 tipos utilitarios que uso todos los días
Mario Rojas
1 min de lectura

TypeScript trae tipos "de fábrica" que te ahorran escribir interfaces repetidas. Estos son los que más uso.
Partimos de este tipo:
interface User {
_id: string;
name: string;
email: string;
password: string;
}
1. Partial
Todas las propiedades se vuelven opcionales. Perfecto para actualizaciones:
function updateUser(id: string, data: Partial<User>) { /* ... */ }
updateUser("123", { name: "Mario" }); // no hace falta enviar todo
2. Pick
Te quedas solo con lo que necesitas:
type LoginData = Pick<User, "email" | "password">;
3. Omit
Lo contrario: quitas lo que no quieres exponer.
type PublicUser = Omit<User, "password">;
4. Record
Un objeto con claves y valores de un tipo concreto:
type Status = "loading" | "success" | "error";
const messages: Record<Status, string> = {
loading: "Cargando...",
success: "Listo",
error: "Algo falló",
};
Si agregas un estado nuevo y olvidas su mensaje, TypeScript te avisa.
5. ReturnType
Obtiene el tipo que devuelve una función, sin repetirlo:
function createStore() {
return { posts: [] as string[], loading: false };
}
type Store = ReturnType<typeof createStore>;
Bonus: combinarlos
type UserUpdate = Partial<Omit<User, "_id" | "password">>;
"Cualquier dato del usuario, excepto el id y la contraseña, y todos opcionales." Una línea en lugar de una interfaz nueva.