pie() 不接受对象数组作为参数。

3
我有以下代码:
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的类型包似乎在这种情况下是错误的,因为我读过的所有教程都是这样做的,而且代码运行得很好。

在这种情况下我的选择是什么?有任何解决方法吗?我能否覆盖妨碍我的类型定义?

1个回答

3

d3pie接受一个特定的参数。

以下是解决方法:

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);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接