Un mapped type (tipo basado en mapas) es un tipo generic que utiliza una unión generada a partir de keyof
para iterar a través de las propiedades de un tipo y crear así otro.
type Persona = {
trabaja: boolean;
estudia: boolean;
edad: number;
};
type Opciones<T> = {
[key in keyof T]: boolean;
};
const o: Opciones<Persona> = {
estudia: true,
trabaja: true,
edad: 200, // <- esta línea genera un error ya que todos deben ser boolean
};
En este ejemplo
Opciones
tomará el nombre de todas las propiedades deT
y cambiará los valores aboolean
.