Julian Rubin
Julian Rubin

Reputation: 1235

How to call stopPropagation in Typescript

I'm trying to use stopPropagation method. I use d3.js with d3.d.ts (downloaded via typings). Is it possible to call stopPropagation somehow? I used event.stopPropagation() until I've run my application in firefox. Typings does have d3.event but it doesn't contain declaration of mentioned method.

Upvotes: 7

Views: 16525

Answers (2)

basarat
basarat

Reputation: 275997

You can narrow the type by doing a type guard style check:

if (d3.event instanceof Event) {
}

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

Upvotes: 2

Julian Rubin
Julian Rubin

Reputation: 1235

It wasn't that hard actually. For stopPropagation I needed:

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

The typings says that:

event: Event | BaseEvent

So essentialy event can be any of those. I've forgotten how union works in typescript. As the type property is only one common among Event and BaseEvent it was displayed solely. The one case when I needed cast to BaseEvent (I believe it is only used by d3) was on the dragstart event.

Upvotes: 14

Related Questions