Javascript 使用D3.mouse时出现D3类型脚本错误:';这';隐式具有类型';任何';因为它没有类型注释
我在react应用程序中使用了Javascript 使用D3.mouse时出现D3类型脚本错误:';这';隐式具有类型';任何';因为它没有类型注释,javascript,typescript,d3.js,Javascript,Typescript,D3.js,我在react应用程序中使用了d3,在那里我使用Typescript编写代码。我有以下代码: function mousemove() { // recover coordinate we need var x0 = xScale.invert(d3.mouse(this)[0]); var i = bisect(data, x0, 1); var selectedData = data[i] focus
d3
,在那里我使用Typescript编写代码。我有以下代码:
function mousemove() {
// recover coordinate we need
var x0 = xScale.invert(d3.mouse(this)[0]);
var i = bisect(data, x0, 1);
var selectedData = data[i]
focus
.attr("cx", xScale(selectedData.dateCreated))
.attr("cy", yScale(selectedData[value]))
focusText
.html("x:" + selectedData.x + " - " + "y:" + selectedData.y)
.attr("x", xScale(selectedData.dateCreated) + 15)
.attr("y", yScale(selectedData[value]))
}
d3.鼠标(this)[0]
抛出以下错误:
“this”隐式具有类型“any”,因为它没有类型批注
有什么解决办法吗?此错误是常见的typescript错误,但我不知道如何使用d3.mouse函数解决此错误。我假设这是传递给d3.js事件处理程序的自定义方法(即
.on('mousemove')
)
您可以通过引用实际的事件处理程序来处理事件回调,而不是引用此,后者可能被推断为当前类的实例
.on('mousemove' (d, i) => {
mousemove();
})
function mousemove() {
const x0 = xScale.invert(d3.mouse(d3.event.currentTarget));
// do the rest
}
或者,您可以将节点传递给mousemove()
函数。据报道,
如果选择器是一个函数,则会针对每个选定项对其求值
元素,依次通过当前基准(d),当前
索引(i)和当前组(节点),并将其作为当前DOM
元素(节点[i])
密切相关且可能是更好的解决方案:。
.on('mousemove' (d, i, n) => {
const node = d[i]
mousemove(node);
})
function mousemove(node) {
// do the rest
}