ordinal scales use any string-coercible type

This commit is contained in:
Alex Ford
2015-03-31 11:03:02 -04:00
parent b9546998e3
commit 663240f969
2 changed files with 25 additions and 20 deletions
+3 -3
View File
@@ -738,7 +738,7 @@ function panAndZoom() {
function chainedTransitions() {
var w = 960,
h = 500,
y = d3.scale.ordinal().domain(d3.range(50)).rangePoints([20, h - 20]),
y = d3.scale.ordinal<number, number>().domain(d3.range(50)).rangePoints([20, h - 20]),
t = Date.now();
var svg = d3.select("body").append("svg:svg")
@@ -1629,7 +1629,7 @@ function roundedRectangles() {
.attr("width", 25)
.attr("height", 25)
.attr("transform", function (d, i) { return "scale(" + (1 - d / 25) * 20 + ")"; } )
.style("fill", d3.scale.category20c());
.style("fill", d3.scale.category20c<number>());
var g0 = g.datum(function (d) {
return { center: [0, 0], angle: 0 };
@@ -1862,7 +1862,7 @@ function chordDiagram() {
innerRadius = Math.min(width, height) * .41,
outerRadius = innerRadius * 1.1;
var fill = d3.scale.ordinal<string>()
var fill = d3.scale.ordinal<number, string>()
.domain(d3.range(4))
.range(["#000000", "#FFDD89", "#957244", "#F26223"]);
Vendored
+22 -17
View File
@@ -1627,31 +1627,36 @@ declare module d3 {
copy(): Threshold<Domain, Range>;
}
export function ordinal<T>(): Ordinal<T>;
export function category10(): Ordinal<string>;
export function category20(): Ordinal<string>;
export function category20b(): Ordinal<string>;
export function category20c(): Ordinal<string>;
export function ordinal<Range>(): Ordinal<string, Range>;
export function ordinal<Domain extends { toString(): string }, Range>(): Ordinal<Domain, Range>;
export function category10(): Ordinal<string, string>;
export function category10<Domain extends { toString(): string }>(): Ordinal<Domain, string>;
export function category20(): Ordinal<string, string>;
export function category20<Domain extends { toString(): string }>(): Ordinal<Domain, string>;
export function category20b(): Ordinal<string, string>;
export function category20b<Domain extends { toString(): string }>(): Ordinal<Domain, string>;
export function category20c(): Ordinal<string,string>;
export function category20c<Domain extends { toString(): string }>(): Ordinal<Domain, string>;
interface Ordinal<Domain extends { toString(): string }, Range> {
(x: Domain): Range;
interface Ordinal<T> {
(x: Primitive): T;
domain(): Domain[];
domain(values: Domain[]): Ordinal<Domain, Range>;
domain(): string[];
domain(values: Primitive[]): Ordinal<T>;
range(): Range[];
range(values: Range[]): Ordinal<Domain, Range>;
range(): T[];
range(values: T[]): Ordinal<T>;
rangePoints(interval: [number, number], padding?: number): Ordinal<Domain, number>;
rangeRoundPoints(interval: [number, number], padding?: number): Ordinal<Domain, number>;
rangePoints(interval: [number, number], padding?: number): Ordinal<number>;
rangeRoundPoints(interval: [number, number], padding?: number): Ordinal<number>;
rangeBands(interval: [number, number], padding?: number, outerPadding?: number): Ordinal<number>;
rangeRoundBands(interval: [number, number], padding?: number, outerPadding?: number): Ordinal<number>;
rangeBands(interval: [number, number], padding?: number, outerPadding?: number): Ordinal<Domain, number>;
rangeRoundBands(interval: [number, number], padding?: number, outerPadding?: number): Ordinal<Domain, number>;
rangeBand(): number;
rangeExtent(): [number, number];
copy(): Ordinal<T>;
copy(): Ordinal<Domain, Range>;
}
}