javascript-pie()不接受对象数组

我有以下代码:

public data = [
  {
    value: 61,
    color: 'orange',
  },
  {
    value: 29,
    color: 'white',
  },
  {
    value: 10,
    color: 'blue',
  },
];
  public pie = d3
    .pie()
    .padAngle(0)
    .value((d: any) => d.value);
const arcs = this.pie(this.data);

从本质上讲,这是有关使用d3js构建甜甜圈图的各种教程的结果.

现在,我想为数据数组中的项目添加一个自定义接口,并在.value()函数中正确键入d参数.

问题在于,@ types / d3包将预期的数据数组定义为number [],将d参数定义为number.

这意味着我不能为数据项使用自定义界面.在这种情况下,D3的打字程序包似乎是错误的,因为我阅读的所有教程都采用这种方式,并且代码工作正常.

在这种情况下,我有什么选择?有什么解决方法吗?我可以覆盖妨碍输入的类型吗?

解决方法:

d3的派只接受一个泛型.

解决方法如下:

interface IData {
  value: number;
  color: string;
}

const data: IData[] = [
  {
    value: 61,
    color: 'orange',
  },
  {
    value: 29,
    color: 'white',
  },
  {
    value: 10,
    color: 'blue',
  },
];

const pie = d3
  .pie<IData>()
  .padAngle(0)
  .value(d => d.value);

const arcs = pie(data);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐