Mapped Types
TypeScript 🟡 MidDéfinition
Types qui transforment chaque propriété d'un type existant via une itération sur ses clés. Base de Partial, Required, Readonly et autres utility types.
Analogie
Comme une chaîne de montage qui applique la même transformation a chaque pièce — chaque propriété passe par le même moule.
Exemple de code
type Optional<T> = {
[K in keyof T]?: T[K];
};
interface User { name: string; age: number }
type PartialUser = Optional<User>;
// { name?: string; age?: number }
Cas d'usage
Créer des variantes de types existants (formulaires partiels, versions readonly, DTOs).
Anti-pattern
En entretien
Explique-moi les mapped types.
Ce sont des types qui transforment chaque propriété d'un type existant via une itération sur ses clés. Ils sont la base d'utility types comme Partial, Required ou Readonly.
Quel est l'anti-pattern si on n'utilise pas les mapped types ?
Redéfinir manuellement chaque variante d'un type, comme sa version partielle ou readonly, ce qui crée de la duplication et un risque de désynchronisation. Un mapped type garde toutes les variantes alignées sur le type source.
Fiche mise à jour le 2026-09-27