type的typescript参数不能赋值为Value [] []类型的参数

时间:2018-03-06 23:20:13

标签: typescript d3.js

我试图在打字稿中使用D3js创建堆积条形图。下面是我的代码snipptet。

let testData = [
  {
    month: "Jan",
    A: 20,
    B: 5,
    C: 10
  },
  {
    month: "Feb",
    A: 30,
    B: 10,
    C: 20
  }
];

var xData = ["A", "B", "C"];
var dataIntermediate = xData.map(function(c) {
  return testData.map(function(d) {
    return {
      x: d.month,
      y: d[c]
    };
  });
});
var dataStackLayout = d3.layout.stack()(dataIntermediate);

当我尝试将dataIntermediate传递给堆栈时,我得到了以下错误     **

  

类型的参数' {x:string; y:任何; } [] []'不能转让给   参数类型'值[] []'

**。

我是打字稿的新手,不能理解我在这里做错了什么。

1 个答案:

答案 0 :(得分:0)

您收到该错误,因为Value接口期望x和y都是数字,但x是字符串。

您必须使用数字替换月份标记才能使其正常工作:

let testData = [
  {
    month: 0,
    A: 20,
    B: 5,
    C: 10
  },
  {
    month: 1,
    A: 30,
    B: 10,
    C: 20
  }
];

如果您无法更改数据,还可以使用样本的索引:

var dataIntermediate = xData.map(function(c) {
  return testData.map(function(d, i) {
    return {
      x: i,
      y: d[c]
    };
  });
});