Domina el Tipado Avanzado en TypeScript sin Perder la Cabeza
Utiliza tipos condicionales para crear tipos más flexibles y potentes.
A veces necesitas un tipo que dependa de otro, pero sin el lío de crear mil interfaces o tipos diferentes.
El truco
// ANTES
type User = { name: string; age: number };
type Admin = { name: string; age: number; role: string };
type UserOrAdmin = User | Admin;
// DESPUÉS
type ConditionalType<T> = T extends { role: string } ? Admin : User;
const user: ConditionalType<{ role: string }> = { name: "John", age: 30, role: "admin" };
const anotherUser: ConditionalType<{}> = { name: "Jane", age: 28 };
Los tipos condicionales te permiten definir tipos basados en condiciones. Aquí, ConditionalType evalúa si el tipo T tiene una propiedad role. Si la tiene, se asigna el tipo Admin; si no, el tipo User. Esta flexibilidad te evita definiciones redundantes y te ofrece un tipo más adaptable y preciso.
Con tipos condicionales, simplificas tu código y lo haces más robusto, sin sacrificar claridad ni control.