diff --git a/streamjs/streamjs-tests.ts b/streamjs/streamjs-tests.ts
index ba989f447..f911c8f52 100644
--- a/streamjs/streamjs-tests.ts
+++ b/streamjs/streamjs-tests.ts
@@ -1,4 +1,4 @@
-//
+///
var numStream: Stream;
numStream = Stream.of(1, 2, 3);
@@ -12,11 +12,11 @@ Stream.generate(() => 1);
numStream = Stream.iterate(1, (n) => n * 2);
-var comparator = (s1, s2) => 0;
+var comparator = (s1: string, s2: string) => 0;
numStream = numStream.filter(n => n % 2 == 0);
var strStream = numStream
- .dropWhile((n) => n % 2 == 0)
+ .dropWhile((n: number) => n % 2 == 0)
.map(n => "number " + n)
.dropWhile(/^$/)
.limit(100)
@@ -77,7 +77,7 @@ class MyList {
var elems: any[];
-var myStream = Stream.from([new MyList, new MyList]);
+var myStream: Stream = Stream.from([new MyList, new MyList]);
elems = myStream
.flatMap(list => list.elems)
.toArray();
@@ -102,7 +102,7 @@ groupingResult = myStream.groupingBy(lst => lst.name);
groupingResult = myStream.groupBy("name");
groupingResult = myStream.groupingBy("name");
-var mappingResult = myStream.toMap(lst => lst.name, (e1, e2) => e2);
+var mappingResult = myStream.toMap((lst) => lst.name, (e1: MyList, e2: MyList) => e2);
var aMappingResult: MyList = mappingResult["a"];
mappingResult = myStream.toMap("a");
diff --git a/streamjs/streamjs.d.ts b/streamjs/streamjs.d.ts
index e36dcca23..59d8019f3 100644
--- a/streamjs/streamjs.d.ts
+++ b/streamjs/streamjs.d.ts
@@ -40,7 +40,7 @@ declare class Stream {
groupBy(path: string): Stream.GroupingResult;
groupingBy(mapper: Stream.Function): Stream.GroupingResult;
groupingBy(path: string): Stream.GroupingResult;
- indexBy(keyMapper: Stream.Function, mergeFunction?: Stream.Accumulator): T[];
+ indexBy(keyMapper: Stream.Function, mergeFunction?: Stream.Accumulator): Stream.Map;
map (mapper: Stream.Function): Stream;
max(): Stream.Optional;
max(comparator: Stream.Comparator): Stream.Optional;
@@ -80,7 +80,7 @@ declare class Stream {
sort(path: string): Stream;
shuffle(): Stream;
skip(n: number): Stream;
- slice(begin, end): Stream;
+ slice(begin: number, end: number): Stream;
sum(): number;
sum(path: string): number;
takeWhile(predicate: Stream.Predicate): Stream;
@@ -88,12 +88,17 @@ declare class Stream {
takeWhile(sample: Stream.Sample): Stream;
toArray(): T[];
toList(): T[];
- toMap(keyMapper: Stream.Function, mergeFunction?: Stream.Accumulator): T[];
- toMap(path: string, mergeFunction?: Stream.Accumulator): T[];
+ toMap(keyMapper: Stream.Function, mergeFunction?: Stream.Accumulator): Stream.Map;
+ toMap(path: string, mergeFunction?: Stream.Accumulator): Stream.Map;
}
declare module Stream {
+ export interface Map {
+ [index: string]: T
+ }
+
+
export interface Sample {
[index: string]: any
}