Variable: Result
constResult: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
- Ok - success
- Err - failure
- Result - sync version
- AsyncResult - async version
Result<T, E> represents either:
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
function divide(a: number, b: number): Result<number, string> {
if (b === 0) return Result.err('division by zero')
return Result.ok(a / b)
}const value = Result
.ok(10)
.map((x) => x * 2)
.andThen((x) => Result.ok(x + 5))
// => Ok(25)const parsed = Result.fromTry(
() => JSON.parse(input)
)
// => Ok(parsed) | Err(Error)const user = await Result.fromPromise(
() => fetchUser(id)
)
// => Ok(user) | Err(Error)