Optional for Typescript inspired by the Java Optional.
npm install --save ts-optional-class
import {Optional} from 'ts-optional-class/dist/optional';
const active: boolean = Optional
.of(user)
.map(user => user.active)
.orElse(false);
You have four ways to create an optional:
Optional.empty();
Optional.of(value); // throws error if value is null
Optional.ofNullable(value); // throws error if value is undefined
Optional.ofAnything(value);
Operations
empty(): Optional<T>;
of(value: T): Optional<T>;
ofNullable(value: T | null): Optional<T>;
ofAnything(value: T | null | undefined): Optional<T>;
get(): T;
isPresent(): boolean;
ifPresent(func: (value: T) => void): void;
filter(predicate: (value: T) => boolean): Optional<T>;
map<U>(mapper: (value: T) => U): Optional<U>;
flatMap<U>(mapper: (value: T) => Optional<U>): Optional<U>;
orElse(other: T): T;
orElseGet(supplier: () => T): T;
orElseThrow<X extends Error>(errorSupplier: () => X): T;
toString(): string;