Skip to content

Function: toThrowable()

Call Signature

toThrowable<R, Args>(fn): (...args) => UnwrapOk<R>

Defined in: index.ts:480

Converts a function that returns Results into a function that throws on errors. Useful for integrating Result-based functions with traditional throw-based code.

Type Parameters

R

R extends Result<any, any>

The Result type returned by the function

Args

Args extends unknown[] = []

The argument types of the function

Parameters

fn

(...args) => NonPromise<R>

The function that returns Results

Returns

A new function that throws on Err results and returns data on Ok results

(...args): UnwrapOk<R>

Parameters

args

...Args

Returns

UnwrapOk<R>

Example

typescript
function safeDivide(a: number, b: number) {
  return b === 0 ? err("Division by zero") : ok(a / b);
}

const divide = toThrowable(safeDivide);

divide(10, 2); // 5
divide(10, 0); // throws "Division by zero"

Call Signature

toThrowable<R, Args>(fn): (...args) => Promise<UnwrapOk<R>>

Defined in: index.ts:483

Converts a function that returns Results into a function that throws on errors. Useful for integrating Result-based functions with traditional throw-based code.

Type Parameters

R

R extends OrPromise<Result<any, any>>

The Result type returned by the function

Args

Args extends unknown[] = []

The argument types of the function

Parameters

fn

(...args) => R

The function that returns Results

Returns

A new function that throws on Err results and returns data on Ok results

(...args): Promise<UnwrapOk<R>>

Parameters

args

...Args

Returns

Promise<UnwrapOk<R>>

Example

typescript
function safeDivide(a: number, b: number) {
  return b === 0 ? err("Division by zero") : ok(a / b);
}

const divide = toThrowable(safeDivide);

divide(10, 2); // 5
divide(10, 0); // throws "Division by zero"