【发布时间】:2017-07-14 04:14:28
【问题描述】:
我正在为依赖于事件的dataTransfer 的拖放交互编写单元测试。我也在使用打字稿。为了模拟事件,我编写了这个小函数:
function createDragEvent(eventName: string, dataTransferData?: Array<any>) {
const event = new CustomEvent(eventName, { bubbles: true, cancelable: true });
event.dataTransfer = {
setData: jasmine.createSpy("setData() spy"),
getData: jasmine.createSpy("getData() spy").and.callFake(function() {
return dataTransferData[0] === 'text/plain' ? dataTransferData[1] : undefined;
})
};
return event;
}
但是,TypeScript 告诉我
TS2339:“CustomEvent”类型上不存在属性“dataTransfer”。
我不能不使用dataTransfer,也不能使用本机DragEvents,因为我无法设置数据或窥探其功能。有没有办法解决这个问题,例如告诉 TypeScript dataTransfer 没问题或禁用此文件的错误或类似的东西?
【问题讨论】:
标签: unit-testing typescript drag-and-drop