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_uncheckedRetorna ok: true en el caso exitoso
- radio_button_uncheckedRetorna 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
inputes un string vacío: retorna{ ok: false, error: "Entrada vacía" } - Si
Number(input)esNaN: 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:
- Define el tipo
Result<T>con las dos variantes - Implementa
parseNumberretornando el Result correcto en cada caso - 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
exportal 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