Skip to main content

Type Alias: Result<T, E>

Result<T, E>: { ok: true; value: T; } | { error: E; ok: false; }

Defined in: src/types/result.ts:67

Result monad representing either success (Ok) or failure (Err).

Type Parameters

T

Success value type

E extends Error = Error

Error type (must extend Error)

Remarks

Result is a discriminated union with two variants:

  • { ok: true, value: T } - Success case
  • { ok: false, error: E } - Error case

Use type guards (isOk, isErr) or pattern matching (if/switch on ok field) to safely access the value or error.

Example

function divide(a: number, b: number): Result<number, Error> {
if (b === 0) {
return Err(new Error('Division by zero'));
}
return Ok(a / b);
}

const result = divide(10, 2);
if (result.ok) {
console.log('Result:', result.value); // 5
} else {
console.error('Error:', result.error.message);
}