gpt4 book ai didi

javascript - 由于 d3 事件错误,无法转换 typescript

转载 作者:搜寻专家 更新时间:2023-10-30 21:08:54 25 4
gpt4 key购买 nike

我在使用 typescript 和 webpack 的 Angular 2 项目中有一个 d3 散点图。图表的一部分响应鼠标悬停事件以显示工具提示。现在 mouseover 事件实际上可以很好地触发,但是当 webpack 转译 typescript 时我看到一个错误。

 Property 'pageX' does not exist on type 'Event | BaseEvent'.

这是一个片段,显示了图表元素的鼠标悬停部分和违规的 d3.event.pageX

  .on("mouseover", (d: any) => {
if(d.roleName) {
div.transition()
.duration(200)
.style("display", "block")
.style("opacity", 1);
div.html(d.roleName + "<br/>" + d.org.name)
.style("left", (d3.event.pageX) + "px")
.style("top", (d3.event.pageY-80) + "px");
}
})

我对 typescript 比较陌生,但我收集到上述问题可能与 d3 打字文件未正确映射有关?

非常感谢任何指导。

最佳答案

由于 d3 不是实际的 TypeScript 库,我们得到 .d.ts 文件来描述原始库。在这种情况下,它不知道在 on("mouseover"内部 d3.event 实际上意味着 MouseEvent,因此您可以尝试将其转换为另一种类型或忽略编译器的这一小部分:

.on("mouseover", (d: any) => {
if(d.roleName) {
div.transition()
.duration(200)
.style("display", "block")
.style("opacity", 1);
div.html(d.roleName + "<br/>" + d.org.name)
.style("left", ((<any>d3.event).pageX) + "px")
.style("top", ((<any>d3.event).pageY-80) + "px");
}
})

关于javascript - 由于 d3 事件错误,无法转换 typescript ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38019090/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com