打字稿中连续数字 d3.scaleLinear() 比例的类型是什么

What is the type of a continuous numeric d3.scaleLinear() scale in typescript

我正在使用打字稿将 d3 线性比例传递给函数。

import {scaleLinear} from 'd3-scale'

const myScale = scaleLinear().domain([0,10]).range([0,1])

const myFunc = (myScale : ScaleLinear<what, where, why>) => {
//draw something
}

我查看了@types d3 scale documentation 并找到了这条线


export interface ScaleLinear<Range, Output, Unknown = never> extends ScaleContinuousNumeric<Range, Output, Unknown> {
//...
}

但它真的没有为我解决任何问题。

我想我需要在 ScaleLinear 括号 <> 中添加一些信息,但我不知道是什么。

有什么建议吗?

ScaleLinear中的第一个泛型是Range,第二个是Output

范围

Range泛型用于范围数据的类型。如果范围以数字指定(如 range([1, 10])),则范围的类型为 number.

如果以颜色等字符串指定比例范围(如range(['red', 'blue'])),则Range类型为string.

输出

Output 泛型用于秤输出的数据类型。如果刻度内插数字(如 range([1, 10])),输出是 1 到 10 之间的数字,因此输出也是 number.

类型

如果刻度内插颜色(如range(['red', 'blue'])),则输出为颜色字符串(如#9a3439),类型为string.

在大多数情况下,您可以对内插数字的比例使用 ScaleLinear<number, number>,对内插颜色字符串的比例使用 ScaleLinear<string, string>。在它们相等的情况下,您还可以使用 shorthand ScaleLinear<number>ScaleLinear<string>.