Retour à la leçonMission
Mission : réparer un état de téléchargement incohérent
Remodéliser un état représenté par des champs optionnels en union discriminée pour rendre un état incohérent impossible à construire.
Contexte
Une application de téléchargement représente son état avec { statut: string; progression?: number; url?: string; erreur?: string }, tous les champs optionnels sauf statut. Un bug en production affiche "Téléchargement terminé" avec un lien cassé : un setState partiel a mis à jour statut: "succes" sans renseigner url. Ta mission : rendre cet état invalide impossible à représenter.