diff --git a/d3/d3-tests.ts b/d3/d3-tests.ts index 1a2b5f1c5..51c51f608 100644 --- a/d3/d3-tests.ts +++ b/d3/d3-tests.ts @@ -47,6 +47,37 @@ function testPieChart() { }); } +function testMapConstructor() { + //No arg constructor + var emptyMap: D3.Map = d3.map(); + + //Object constructor + var object:{[key: string]: number } = {a: 1, b: 2, c: 3}; + var objectMap: D3.Map = d3.map(object); + + //Array constructor + var numberArray: number[] = [1, 2, 3] + var numberArrayMap: D3.Map = d3.map(numberArray); + + //Array with keyFn constructor + var objectArray: {key: string}[] = [{key: "v1"}, {key: "v2"}, {key: "v3"}]; + var indexes: number[] = []; + //keyFn with index + var objectArrayMap1: D3.Map<{key: string}> + = d3.map<{key: string}>(objectArray, (o: {key: string}, index: number) => { + indexes.push(index); + return o.key; + }); + //keyFn without index + var objectArrayMap2: D3.Map<{key: string}> + = d3.map<{key: string}>(objectArray, (o: {key: string}) => { + return o.key; + }); + + //Map constructor + var duplicateMap: D3.Map = d3.map(numberArrayMap); +} + //Example from http://bl.ocks.org/3887051 interface GroupedData { State: string; diff --git a/d3/d3.d.ts b/d3/d3.d.ts index 8569ab3f8..be4032921 100644 --- a/d3/d3.d.ts +++ b/d3/d3.d.ts @@ -549,10 +549,17 @@ declare module D3 { functor(value: (p : R) => T): (p : R) => T; functor(value: T): (p : any) => T; - map(): Map; - set(): Set; - map(object: {[key: string]: T; }): Map; - set(array: T[]): Set; + map: { + (): Map; + (object: {[key: string]: T; }): Map; + (map: Map): Map; + (array: T[]): Map; + (array: T[], keyFn: (object: T, index?: number) => string): Map; + }; + set: { + (): Set; + (array: T[]): Set; + }; dispatch(...types: string[]): Dispatch; rebind(target: any, source: any, ...names: any[]): any; requote(str: string): string;