From 039152e617b8b254dbc151f76a584e871caad90c Mon Sep 17 00:00:00 2001 From: Daniel Mane Date: Fri, 22 Aug 2014 21:16:48 -0700 Subject: [PATCH] Implement generic typing for D3.Map and D3.Set --- d3/d3.d.ts | 36 +++++++++++++++++++----------------- 1 file changed, 19 insertions(+), 17 deletions(-) diff --git a/d3/d3.d.ts b/d3/d3.d.ts index 26577be0e7..f4ef9f3ba4 100644 --- a/d3/d3.d.ts +++ b/d3/d3.d.ts @@ -538,8 +538,10 @@ declare module D3 { functor(value: (p : R) => T): (p : R) => T; functor(value: T): (p : any) => T; - map(object?: any): Map; - set(array?: Array): Set; + map(): Map; + set(): Set; + map(object: {[key: string]: T; }): Map; + set(array: T[]): Set; dispatch(...types: Array): Dispatch; rebind(target: any, source: any, ...names: Array): any; requote(str: string): string; @@ -839,25 +841,25 @@ declare module D3 { entries(values: any[]): NestKeyValue[]; } - export interface Map { + export interface Map { has(key: string): boolean; - get(key: string): any; - set(key: string, value: T): T; + get(key: string): T; + set(key: string, value: T): T; remove(key: string): boolean; - keys(): Array; - values(): Array; - entries(): Array; - forEach(func: (key: string, value: any) => void ): void; + keys(): string[]; + values(): T[]; + entries(): any[][]; // Actually of form [key: string, val: T][], but this is inexpressible in Typescript + forEach(func: (key: string, value: T) => void ): void; empty(): boolean; size(): number; } - export interface Set { - has(value: any): boolean; - add(value: T): T; - remove(value: any): boolean; - values(): Array; - forEach(func: (value: any) => void ): void; + export interface Set { + has(value: T): boolean; + add(value: T): T; + remove(value: T): boolean; + values(): string[]; + forEach(func: (value: string) => void ): void; empty(): boolean; size(): number; } @@ -1237,7 +1239,7 @@ declare module D3 { source: GraphNode; target: GraphNode; } - + export interface GraphNodeForce { index?: number; x?: number; @@ -3370,5 +3372,5 @@ declare module D3 { declare var d3: D3.Base; declare module "d3" { - export = d3; + export = d3; }