diff --git a/packages/rdx-utils/src/helpers/maybe.ts b/packages/rdx-utils/src/helpers/maybe.ts index b2187c74..11912685 100644 --- a/packages/rdx-utils/src/helpers/maybe.ts +++ b/packages/rdx-utils/src/helpers/maybe.ts @@ -12,7 +12,7 @@ export interface IMaybe { isSome(): boolean; isNone(): boolean; - unwrap(): T | undefined; + unwrap(): T; getOrUndefined(): T | undefined; map(fn: (value: T) => U): IMaybe; match(someFn: (value: T) => U, noneFn: () => U): U; @@ -41,7 +41,11 @@ export class Maybe implements IMaybe { return !this.isSome(); } - unwrap(): T | undefined { + unwrap(): T { + if (this.value === undefined || this.value === null) { + throw new Error("Tried to unwrap a None value"); + } + return this.value; }