AxisScale
A helper interface to which a scale passed into axis must conform (at a minimum) for axis to use the scale without error.
interface AxisScale <Domain> {
(x: Domain): number | undefined;
bandwidth?(): number;
copy(): this;
domain(): Domain[];
range(): number[];
}