微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript-由于d3事件错误,无法翻译打字稿

我在使用Typescript和webpack的Angular 2项目中有一个d3散点图.图表的一部分响应鼠标悬停事件以显示工具提示.现在mouSEOver事件实际上可以很好地触发,但是当webpack转换打字稿时出现错误.

 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文件来描述原始库.在这种情况下,我们无法知道d3.event在on(“ mouSEOver”内部实际上意味着一个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");
  }
})

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐