В JavaScript у меня есть код, как показано ниже, чтобы остановить распространение события, когда что-то перетаскивается.Как остановить распространение события в d3 с помощью TypeScript?
var drag = d3.behavior.drag()
.origin(function(d) {
return d;
})
.on('dragstart', function(e) {
d3.event.sourceEvent.stopPropagation();
})
.on('drag', function(e) { ... });
В машинопись, я заметил, что d3.event.sourceEvent
не существует. Ниже приведен соответствующий код TypeScript.
let drag = d3.behavior.drag()
.origin((d, i) => {
let data = d as any;
return { x: data.x as number, y: data.y as number };
})
.on('dragstart', (d, i) => {
//what to do here
})
.on('drag', (d, i) => { ... });
В самом деле, on
метода подпись изменилась в машинописи. Файл декларации выглядит следующим образом.
export module behavior {
interface Drag<Datum> {
on(type: string): (d: Datum, i: number) => any;
on(type: string, listener: (d: Datum, i: number) => any): Drag<Datum>;
}
}
Ниже приведены зависимости от npm, связанные с d3.
- "@ типы/d3": "3.5.37"
- "d3": "^ 3.5.16"
Любые идеи о том, как сделать то же самое в машинописном?
Я думаю, что это должно быть 'd3.event.stopPropagation()' –