Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么“;d”;在attrTween(d3.js+;TypeScript)中是否未定义?_Javascript_Typescript_D3.js - Fatal编程技术网

Javascript 为什么“;d”;在attrTween(d3.js+;TypeScript)中是否未定义?

Javascript 为什么“;d”;在attrTween(d3.js+;TypeScript)中是否未定义?,javascript,typescript,d3.js,Javascript,Typescript,D3.js,我已经问过这个问题了,但我得到的建议是我发布一个新的问题,因为我不认为这个问题可能与使用TypeScript有关 所以,我试图在d3上创建一个接口。我找到了arc动画代码(),我想对它做一点修改(没有函数arcTween()。以下是我的部分代码(此代码位于一个自行运行的循环函数中): 但有一个错误:类型为“{endAngle:number;newAng:number;}”的参数不能分配给类型为“DefaultArcObject”的参数。类型“{endAngle:number;newAng:num

我已经问过这个问题了,但我得到的建议是我发布一个新的问题,因为我不认为这个问题可能与使用TypeScript有关

所以,我试图在d3上创建一个接口。我找到了arc动画代码(),我想对它做一点修改(没有函数arcTween()。以下是我的部分代码(此代码位于一个自行运行的循环函数中):

但有一个错误:类型为“{endAngle:number;newAng:number;}”的参数不能分配给类型为“DefaultArcObject”的参数。类型“{endAngle:number;newAng:number;}”中缺少属性“innerRadius”


在浏览器的控制台中,“d”是未定义的。我得到了一个解决方案:将
基准
移动到
.attr('d',arc3)
行之前。但是,如果我这样做,它就不起作用了(发生相同的错误),因为使用了TypeScript。

您能提供一个使用JSFIDLE的代码示例吗?这里:检查一下!但这很奇怪。在JSFIDLE上,代码运行良好,但我在IntelliJ IDEA中工作,在
arc(d)
中也会出现相同的错误。
            var arc3 = d3.arc().innerRadius(77).outerRadius(90).startAngle(0);
            var foregroundArc3 = imgs3
              .append('path')
              .attr('d', arc3)
              .attr('stroke', 'white')
              .attr('fill', 'white')
              .style('fill-opacity', 0.5)
              .attr('transform', 'translate('+(146.5)+','+(150.9)+')')
              .datum({endAngle: 0.0628*90, newAngle: 0.0628*270})
              .transition()
              .duration(1500)
              .attrTween('d',  (d) => {
                return (t) => {
                  const interpolate = d3.interpolate(d.endAngle, d.newAngle);
                    d.endAngle = interpolate(t);
                    return arc3(d);
                  };
          });