diff --git a/streamjs/streamjs-tests.ts b/streamjs/streamjs-tests.ts index e59af31ae..3d836b56f 100644 --- a/streamjs/streamjs-tests.ts +++ b/streamjs/streamjs-tests.ts @@ -116,9 +116,16 @@ var done: boolean = iter.done; var optNum: Stream.Optional = Stream.Optional.of(2); optNum = Stream.Optional.ofNullable(null); -optNum = Stream.Optional.empty(); +//optNum = Stream.Optional.empty(); var optStr: Stream.Optional = optNum.filter(n => n % 2 == 0) .map(n => "number" + n) .flatMap(n => Stream.Optional.of(n + 2)) ; + +var isPresent: boolean = optNum.isPresent(); +var num: number = optNum.get(); +optNum.ifPresent(n => console.log(n)); +var def: number = optNum.orElse(2); +def = optNum.orElseGet(() => 3); +def = optNum.orElseThrow("something went wrong"); diff --git a/streamjs/streamjs.d.ts b/streamjs/streamjs.d.ts index 6d13346a9..5a0ea94a4 100644 --- a/streamjs/streamjs.d.ts +++ b/streamjs/streamjs.d.ts @@ -102,5 +102,11 @@ declare module Stream { filter(predicate: (elem: T) => boolean): Optional; map(mapper: (elem: T) => U): Optional; flatMap(mapper: (elem: T) => Stream.Optional): Optional; + isPresent(): boolean; + get(): T; + ifPresent(consumer: (elem: T) => void): void; + orElse(other: T): T; + orElseGet(supplier: () => T): T; + orElseThrow(error: any): T; } }