Skip to content

Variable: Result

const Result: Readonly<{ all: <TResults>(results) => Result<OkTuple<TResults>, ErrUnion<TResults>>; allSettled: <TResults>(results) => Ok<SettledTuple<TResults>>; any: <TResults>(results) => Result<OkUnion<TResults>, ErrTuple<TResults>>; err: <TError>(error) => Err<never, TError>; errors: <T, E>(results) => E[]; fromNullable: {<TValue>(value): Result<NonNullable<TValue>, Error>; <TValue, TError>(value, onNull): Result<NonNullable<TValue>, TError>; }; fromPromise: {<TValue>(executor): AsyncResult<TValue, Error>; <TValue, TError>(executor, catchErr): AsyncResult<TValue, TError>; }; fromTry: {<TValue>(executor): Result<TValue, Error>; <TValue, TError>(executor, catchErr): Result<TValue, TError>; }; isErr: (value) => value is Err<never, unknown>; isOk: (value) => value is Ok<unknown, never>; isResult: (value) => value is Result<unknown, unknown>; ok: <TValue>(value) => Ok<TValue, never>; partition: <T, E>(results) => [T[], E[]]; validate: {<TValue>(value, condition): Result<TValue, Error>; <TValue, TError>(value, condition, onFailure): Result<TValue, TError>; }; values: <T, E>(results) => T[]; }>

Defined in: src/index.ts:59

Utilities for creating and composing Result values.

See

Result<T, E> represents either:

  • Ok — success containing T
  • Err — failure containing E

Inspired by Rust's Result<T, E>, enabling explicit error handling without exceptions.

Remarks

Runtime namespace with helpers such as:

  • Result.ok(value)
  • Result.err(error)
  • Result.fromTry(fn)
  • Result.fromPromise(fn)
  • Result.fromNullable(value)
  • Result.all(results)

Also exported as a type alias:

Examples

ts
function divide(a: number, b: number): Result<number, string> {
  if (b === 0) return Result.err('division by zero')
  return Result.ok(a / b)
}
ts
const value = Result
  .ok(10)
  .map((x) => x * 2)
  .andThen((x) => Result.ok(x + 5))
// => Ok(25)
ts
const parsed = Result.fromTry(
  () => JSON.parse(input)
)
// => Ok(parsed) | Err(Error)
ts
const user = await Result.fromPromise(
  () => fetchUser(id)
)
// => Ok(user) | Err(Error)