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