|Patrón Result como alternativa a throwDifícil
Ejercicio00:00

¿Quieres un reto mayor?

Resuelve en 15:00

info

Importante: Para que se registre el resultado tienes que iniciar sesión.

Patrón Result como alternativa a throw

Difícil30 pts
ruleRestricciones
  • radio_button_unchecked
    Retorna ok: true en el caso exitoso
  • radio_button_unchecked
    Retorna ok: false en el caso de error

Enunciado

Implementa la función parseNumber que intenta convertir un string a número usando el patrón Result<T, E> en lugar de lanzar excepciones.

Define el tipo Result<T> como:

  • { ok: true; value: T } cuando tiene éxito
  • { ok: false; error: string } cuando falla

Comportamiento de parseNumber(input):

  • Si input es un string vacío: retorna { ok: false, error: "Entrada vacía" }
  • Si Number(input) es NaN: retorna { ok: false, error: "No es un número: " + input }
  • Si es válido: retorna { ok: true, value: <número> }
parseNumber("42");    // { ok: true, value: 42 }
parseNumber("3.14");  // { ok: true, value: 3.14 }
parseNumber("");      // { ok: false, error: "Entrada vacía" }
parseNumber("abc");   // { ok: false, error: "No es un número: abc" }

Instrucciones:

  1. Define el tipo Result<T> con las dos variantes
  2. Implementa parseNumber retornando el Result correcto en cada caso
  3. Nunca lances con throw — todo el control de flujo va por el tipo de retorno
Restriccionesexpand_more
  • Dificultad: Difícil
  • Completa todos los test cases para obtener los 30 puntos.
  • No modificar la línea export al final del archivo.
  • Se recomienda evitar el uso de inteligencia artificial para que realmente tú practiques los ejercicios.

Puedes usar console.log() para depurar. Los resultados aparecen en la Consola de salida, no en el navegador.

Inicia sesión para reaccionar
Inicia sesión para reaccionar
Patrón Result como alternativa a throw — Difícil | Coding Challenges · Coding Challenges