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