如何在 Typescript 中调用 stopPropagation

How to call stopPropagation in Typescript

我正在尝试使用 stopPropagation 方法。我将 d3.js 与 d3.d.ts 一起使用(通过 typings 下载)。有可能以某种方式调用 stopPropagation 吗?我使用 event.stopPropagation() 直到我在 firefox 中 运行 我的应用程序。 Typings 确实有 d3.event 但它不包含上述方法的声明。

其实并没有那么难。 stopPropagation 我需要:

(d3.event as Event).stopPropagation();

打字说:

event: Event | BaseEvent

所以本质事件可以是其中任何一个。我忘记了 union 在 typescript 中是如何工作的。由于 type 属性 只是 EventBaseEvent 中常见的一个,因此单独显示。我需要转换为 BaseEvent 的一种情况(我相信它只被 d3 使用)是在 dragstart 事件中。

您可以通过进行类型保护样式检查来缩小类型范围:

if (d3.event instanceof Event) {
}

更多:https://basarat.gitbooks.io/typescript/content/docs/types/typeGuard.html