Angular中D3层级边缘捆绑路径绘制及类型匹配问题
Angular中D3层级边捆绑图路径绘制问题
我在Angular应用中实现D3的层级边捆绑图,参考相关示例完成了节点圆形的渲染,但绘制路径/连线时遇到问题,核心卡在d3.lineRadial()的配置环节。
原示例中的相关代码如下:
line = d3.lineRadial() .curve(d3.curveBundle.beta(0.85)) .radius(d => d.y) .angle(d => d.x)
现在遇到的类型冲突问题:
- IDE提示
radius和angle函数的参数d是二元数字向量(类型为[number, number]) - 但运行时打印
d,实际却是包含x、y属性的节点对象 - 尝试直接访问
d.x或d.y时,会触发TypeScript错误:TS2339: Property 'x' does not exist on type '[number, number]'
我当前的代码写法如下:
let line = d3.lineRadial() .curve(d3.curveBundle.beta(0.85)) .radius((d,i) => { console.log("d"); console.log(i); console.log(d); return d[0]; }) .angle(d => d[1]);
运行时日志显示d是带x、y属性的对象,但IDE的类型提示和实际运行数据完全不符,对此感到困惑。
内容的提问来源于stack exchange,提问作者madmax
相关产品推荐
相关产品推荐

