Closed
Description
TypeScript Version: 2.9.2
Search Terms: DragEventInit, drag event init
Code
export class DragEventMock {
static mockDragEvent(
eventType: 'drag'|'dragend'|'dragenter'|'dragexit'|'dragleave'|'dragover'|'dragstart'|'drop',
dataTransfer: DataTransfer = new DataTransfer()
): DragEvent {
const event = new DragEvent(eventType, {
layerX: 0,
layerY: 0,
dataTransfer: dataTransfer
});
return event;
}
}
Expected behavior:
compiles correctly.
Does not give an error in IDE (VSCode)
I also feel I should be able to specify as DragEventInit
to solve this issue as well.
Actual behavior:
error TS2345: Argument of type '{layerX: number; layerY: number; dataTransfer: DataTransfer; }' is not assignable to parameter of type '{dataTransfer?: DataTransfer;}'.
Object literal may only specify known properties, and 'layerX' does not exist in type '{dataTransfer?: DataTransfer;}'.
Related Issues:
Should just be able to add to the lib.dom.d.ts file
declare type DragEventType = 'drag'|'dragend'|'dragenter'|'dragexit'|'dragleave'|'dragover'|'dragstart'|'drop'
declare interface DragEventInit extends MouseEventInit {
dataTransfer?: DataTransfer;
}
And then update:
declare var DragEvent: {
prototype: DragEvent;
new(type: DragEventType, dragEventInit?: DragEventInit): DragEvent;
}