arch-unit-ts
Version:
17 lines (16 loc) • 864 B
TypeScript
export declare abstract class Optional<Value> {
static empty<Value>(): Optional<Value>;
static of<Value>(value: Value): Optional<Value>;
static ofUndefinable<Value>(value: Value | undefined): Optional<Value>;
abstract map<Output>(mapper: (value: Value) => Output): Optional<Output>;
abstract flatMap<Output>(mapper: (feature: Value) => Optional<Output>): Optional<Output>;
abstract or(factory: () => Optional<Value>): Optional<Value>;
abstract orElse(value: Value): Value;
abstract orElseGet(factory: () => Value): Value;
abstract orElseThrow<U = Error>(throwable?: () => U): Value;
abstract filter(predicate: (value: Value) => boolean): Optional<Value>;
abstract isEmpty(): boolean;
abstract isPresent(): boolean;
abstract ifPresent(consumer: (feature: Value) => void): void;
abstract toArray(): Value[];
}