Function: unwrapError()

Extracts the error value from a Result or ResultAsync.

If the input is a Success, it will throw the success value or return the default value if provided.

Type Param

The input Result or ResultAsync.

Type Param

The default value type (optional).

Examples

import { Result } from '@praha/byethrow';

const result: Result.Result<number, string> = Result.fail('Oops');
const error = Result.unwrapError(result); // 'Oops'
import { Result } from '@praha/byethrow';

const result: Result.Result<number, string> = Result.fail('Oops');
const error = Result.unwrapError(result, 'default'); // 'Oops'
import { Result } from '@praha/byethrow';

const result: Result.Result<number, string> = Result.succeed(100);
const error = Result.unwrapError(result); // throws 100
import { Result } from '@praha/byethrow';

const result: Result.Result<number, string> = Result.succeed(100);
const error = Result.unwrapError(result, 0); // 0

See

assertFailure - When used with assertFailure, you can safely unwrap the Result.

Call Signature

unwrapError<R>(result): true extends HasPromise<R> ? Promise<InferFailure<R>> : InferFailure<R>

Defined in: functions/unwrap-error.ts:56

Type Parameters

R

R extends ResultMaybeAsync<any, any>

Parameters

result

R

Returns

true extends HasPromise<R> ? Promise<InferFailure<R>> : InferFailure<R>

Call Signature

unwrapError<R, T>(result, defaultValue): true extends HasPromise<R> ? Promise<T | InferFailure<R>> : T | InferFailure<R>

Defined in: functions/unwrap-error.ts:57

Type Parameters

R

R extends ResultMaybeAsync<any, any>

T

T

Parameters

result

R

defaultValue

T

Returns

true extends HasPromise<R> ? Promise<T | InferFailure<R>> : T | InferFailure<R>

Call Signature

unwrapError<R>(): (result) => true extends HasPromise<R> ? Promise<InferFailure<R>> : InferFailure<R>

Defined in: functions/unwrap-error.ts:58

Type Parameters

R

R extends ResultMaybeAsync<any, any>

Returns

(result): true extends HasPromise<R> ? Promise<InferFailure<R>> : InferFailure<R>

Parameters

result

R

Returns

true extends HasPromise<R> ? Promise<InferFailure<R>> : InferFailure<R>

Call Signature

unwrapError<R, T>(defaultValue): (result) => true extends HasPromise<R> ? Promise<T | InferFailure<R>> : T | InferFailure<R>

Defined in: functions/unwrap-error.ts:59

Type Parameters

R

R extends ResultMaybeAsync<any, any>

T

T

Parameters

defaultValue

T

Returns

(result): true extends HasPromise<R> ? Promise<T | InferFailure<R>> : T | InferFailure<R>

Parameters

result

R

Returns

true extends HasPromise<R> ? Promise<T | InferFailure<R>> : T | InferFailure<R>