Aller au contenu principal
U/USELESS·PROGRAMMING

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).