added termial operations of Optional

This commit is contained in:
Bence Eros
2015-06-14 00:38:59 +02:00
parent bcbadfe78a
commit 09899c1ffa
2 changed files with 14 additions and 1 deletions

View File

@@ -116,9 +116,16 @@ var done: boolean = iter.done;
var optNum: Stream.Optional<number> = Stream.Optional.of(2);
optNum = Stream.Optional.ofNullable(null);
optNum = Stream.Optional.empty();
//optNum = Stream.Optional.empty();
var optStr: Stream.Optional<String> = 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");

View File

@@ -102,5 +102,11 @@ declare module Stream {
filter(predicate: (elem: T) => boolean): Optional<T>;
map<U>(mapper: (elem: T) => U): Optional<U>;
flatMap<U>(mapper: (elem: T) => Stream.Optional<U>): Optional<U>;
isPresent(): boolean;
get(): T;
ifPresent(consumer: (elem: T) => void): void;
orElse(other: T): T;
orElseGet(supplier: () => T): T;
orElseThrow(error: any): T;
}
}