UNPKG

1.23 kBTypeScriptView Raw
1import { OrdinalOptions, Domain, Range } from '../types';
2import { Base } from './base';
3declare type Transform = (x: any) => any;
4/**
5 * Ordinal 比例尺
6 *
7 * 该比例尺具有离散的域和范围,例如将一组命名类别映射到一组颜色
8 *
9 * - 使用 for 替代一些基于 map 的遍历,for 循环性能远高于 forEach, map
10 * - 阻止无意义的更新,只有到用户调用 map、invert 或者 update 之后才会进行相应的更新
11 * - 两个 map 只初始化一次,在之后的更新中复用他们,这样我们避免了重复 new Map 带来的性能问题
12 * 在大量调用 update 函数场景下,较 d3-scale 效率有质的提高
13 */
14export declare class Ordinal<O extends OrdinalOptions = OrdinalOptions> extends Base<O> {
15 private domainIndexMap;
16 private rangeIndexMap;
17 protected sortedDomain: O['domain'];
18 protected domainKey: Transform;
19 protected rangeKey: Transform;
20 protected getDefaultOptions(): O;
21 constructor(options?: OrdinalOptions);
22 map(x: Domain<O>): any;
23 invert(y: Range<O>): any;
24 protected rescale(options?: Partial<O>): void;
25 clone(): Ordinal<O>;
26 protected getRange(): any[];
27 getDomain(): O["domain"];
28}
29export {};