Typescript d3 v5 scaleThreshold不接受范围上的字符串颜色数组?
这是我的代码:Typescript d3 v5 scaleThreshold不接受范围上的字符串颜色数组?,typescript,d3.js,Typescript,D3.js,这是我的代码: var legendThreshold = d3 .scaleThreshold() .domain( (function(min, max, count) { var array = []; var step = (max - min) / count; var base = min; for (var i = 1; i < count; i++) {
var legendThreshold = d3
.scaleThreshold()
.domain(
(function(min, max, count) {
var array = [];
var step = (max - min) / count;
var base = min;
for (var i = 1; i < count; i++) {
array.push(base + i * step);
}
return array;
})(minTemp, maxTemp, legendColors.length)
)
.range(["red", "white", "green"]);
var legendsthreshold=d3
.scaleThreshold()文件
.域名(
(功能(最小、最大、计数){
var数组=[];
变量步长=(最大-最小)/计数;
var基数=最小值;
对于(变量i=1;i
我在靶场上得到一个错误,说:
“string[]”类型的参数不能分配给类型的参数
'只读编号[]'
但是如果你看一下本文中的示例,我相信我的代码应该是正确的。如何修复此问题?似乎您正在使用TypeScript 您可能需要为
d3.scaleThreshold()
提供泛型,以便它接受字符串
正如上面提到的
- 构造一个新的阈值尺度。域和范围必须设置为对应于相应泛型的类型。
- 第一个泛型对应于域值的数据类型
- 第二个泛型对应于范围值的数据类型
域
和范围
都使用字符串,因此我们可以将这两种类型指定为字符串
d3.scaleThreshold<string, string>().domain().range()
d3.scaleThreshold().domain().range()
我刚刚试过,但还是有错误,因为我说:“没有重载需要1类型的参数,但是确实存在期望0或2类型参数的重载。”@iamgpbaculio抱歉,应该是
。第一个泛型对应于域值的数据类型,第二个泛型对应于范围值的数据类型。您的范围返回字符串,但我可以再次检查您的域是否返回字符串或数字吗?