0dias seguidos0XP

Discriminated unions: Result

Intermediário+20 XP

Um padrão muito usado para tratar erros sem exceções:

type Resultado<T> = { ok: true; valor: T } | { ok: false; erro: string };
  1. Declare o tipo Resultado<T>.
  2. dividir(a: number, b: number): Resultado<number> → erro "divisão por zero" quando b = 0.
  3. parseIdade(texto: string): Resultado<number> → erro "não é número" ou "idade inválida" (fora de 0–150).
  4. descrever(r: Resultado<number>): string → "ok: 5" ou "erro: divisão por zero".
Como resolver
  1. Escreva sua solução no editor.
  2. Executar mostra a saída no terminal, para você experimentar.
  3. Testar confere a solução. Passou em tudo? Exercício concluído!
index.ts · carregando TypeScript…
Carregando editor…
digite "ajuda" para ver os comandos
dev@devjr:~/ts-discriminated-union$