Retour à la leçon
Mission

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.