【问题标题】:typescript argument of type is not assignable to parameter of type Value[][]typescript 类型的参数不能分配给 Value[][] 类型的参数
【发布时间】:2018-03-07 21:25:36
【问题描述】:

我正在尝试在打字稿中使用 D3js 创建堆积条形图。以下是我的代码片段。

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:任何; }[][]' 不可分配给 'Value[][]' 类型的参数

**.

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

【问题讨论】:

  • 不太了解 TypeScript,但this 可能会有所帮助。

标签: typescript d3.js


【解决方案1】:

您收到该错误是因为 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]
    };
  });
});

【讨论】:

    猜你喜欢
    • 2022-11-29
    • 2021-04-27
    • 2019-08-17
    • 1970-01-01
    • 2022-07-27
    • 2021-10-17
    • 2020-03-26
    • 2020-08-28
    • 2019-02-13
    相关资源
    最近更新 更多