TypeScript : union discriminée pour un résultat OK / erreur
Modéliser un résultat avec un champ `kind` et affiner le type dans chaque branche.
Énoncé
Définir un type :
type Result<T> =
| { kind: "ok"; value: T }
| { kind: "error"; message: string };
Implémenter une fonction unwrapOr<T>(r: Result<T>, fallback: T): T qui retourne value si kind === "ok", sinon fallback. Sans utiliser as : le compilateur doit accepter le fichier tel quel.
Critère
Le corps de unwrapOr ne doit contenir aucun cast as.
Proposer une solution
Connectez-vous ou créez un compte pour envoyer votre texte (aucune exécution de code côté serveur).