Typed Result success or failure
Model successful and failed operations with a discriminated Result union.
Original Pearto instructional example. Test it in your own environment and adapt it to your requirements.
type Result<T> = {ok:true; value:T} | {ok:false; error:string};
function parseNumber(raw:string):Result<number> {
const n = Number(raw);
return Number.isFinite(n) ? {ok:true, value:n} : {ok:false, error:'Invalid number'};
}
const result = parseNumber('42');
if (result.ok) console.log(result.value);