UNPKG

@stnekroman/tstools

Version:

Set of handy tools for TypeScript development

23 lines (22 loc) 960 B
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]>; }