@stnekroman/tstools
Version:
Set of handy tools for TypeScript development
23 lines (22 loc) • 960 B
TypeScript
import { Functions } from '../Functions';
export declare class Optional<T> {
private readonly value;
private static readonly EMPTY;
private constructor();
static of<T>(value: T | undefined | null): Optional<T>;
static empty(): Optional<never>;
get(): T;
isPresent(): boolean;
isEmpty(): boolean;
filter(filterFn: Functions.Filter<T>): Optional<T>;
map<R>(mapper: Functions.MapFunction<T, R>): Optional<R>;
flatMap<R>(mapper: Functions.MapFunction<T, Optional<R>>): Optional<R>;
mapAsync<R>(mapper: Functions.MapFunction<T, Promise<R>>): Promise<Optional<R>>;
or(provider: Functions.Provider<Optional<T>>): Optional<T>;
orElse(other: T): T;
orElseGet(provider: Functions.Provider<T>): T;
orElseThrow<E extends Error>(provider?: Functions.Provider<E>): T;
toString(): string;
equals(another: Optional<T>): boolean;
property<KEY extends keyof T = keyof T>(key: KEY): Optional<T[KEY]>;
}