我正在尝试使用stopPropagation方法。我使用d3.js和d3.d.ts (通过typings
下载)。是否可以以某种方式调用stopPropagation
?我一直使用event.stopPropagation()
,直到我在火狐中运行了我的应用程序。Typings确实有d3.event
,但它不包含上述方法的声明。
发布于 2016-06-20 08:09:38
实际上,这并不是那么难。对于stopPropagation
,我需要:
(d3.event as Event).stopPropagation();
类型是这样的:
event: Event | BaseEvent
所以本质上,事件可以是其中的任何一个。我已经忘记了联合在typescript中是如何工作的。由于type
属性只是Event
和BaseEvent
中的一个公共属性,因此它是单独显示的。我需要强制转换为BaseEvent
(我相信它只由d3使用)的唯一情况是在dragstart
事件上。
发布于 2016-06-20 14:51:05
您可以通过执行类型保护样式检查来缩小类型范围:
if (d3.event instanceof Event) {
}
更多信息:https://basarat.gitbooks.io/typescript/content/docs/types/typeGuard.html
https://stackoverflow.com/questions/37911618
复制相似问题