Merge pull request #3870 from EthanLozano/ethanlozano/d3-map-update

Ethanlozano/d3 map update
This commit is contained in:
Masahiro Wakame
2015-03-15 23:10:27 +09:00
2 changed files with 42 additions and 4 deletions

View File

@@ -47,6 +47,37 @@ function testPieChart() {
});
}
function testMapConstructor() {
//No arg constructor
var emptyMap: D3.Map<any> = d3.map();
//Object constructor
var object:{[key: string]: number } = {a: 1, b: 2, c: 3};
var objectMap: D3.Map<number> = d3.map<number>(object);
//Array constructor
var numberArray: number[] = [1, 2, 3]
var numberArrayMap: D3.Map<number> = d3.map<number>(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<number> = d3.map(numberArrayMap);
}
//Example from http://bl.ocks.org/3887051
interface GroupedData {
State: string;

15
d3/d3.d.ts vendored
View File

@@ -549,10 +549,17 @@ declare module D3 {
functor<R,T>(value: (p : R) => T): (p : R) => T;
functor<T>(value: T): (p : any) => T;
map(): Map<any>;
set(): Set<any>;
map<T>(object: {[key: string]: T; }): Map<T>;
set<T>(array: T[]): Set<T>;
map: {
(): Map<any>;
<T>(object: {[key: string]: T; }): Map<T>;
<T>(map: Map<T>): Map<T>;
<T>(array: T[]): Map<T>;
<T>(array: T[], keyFn: (object: T, index?: number) => string): Map<T>;
};
set: {
(): Set<any>;
<T>(array: T[]): Set<T>;
};
dispatch(...types: string[]): Dispatch;
rebind(target: any, source: any, ...names: any[]): any;
requote(str: string): string;