我正在使用D3.js库为条形图的y轴创建刻度。yBar刻度是使用d3.scaleLinear()函数创建的,该函数返回一个将输入值Map到输出值的线性刻度。
下面是代码
let yBar = scaleLinear()
.range([height, 0])
.domain([0, d3Array.max(datasets, d => d3Array.sum([d.asia, d.usa, d.uk]))]);
但是typescript给出了错误:
TS2345: Argument of type '(number | undefined)[] is not assignable to parameter of type 'Iterable<NumberValue>'`
1条答案
按热度按时间i34xakig1#
如果没有可比较的值,D3js的Array.max可以返回
undefined
,这就是为什么传递给.domain
的数组类型是number | undefined
。如果你知道你的数组永远不为空,一个选择是告诉Typescript返回类型是一个带有
as
的数字。