我正在编写依赖于事件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:Property&#39; dataTransfer&#39;类型&#39; CustomEvent&#39;。
上不存在
我不能不使用dataTransfer
而我无法使用原生DragEvent
因为我无法设置数据或监视其功能。有没有办法解决这个问题,例如:告诉TypeScript dataTransfer
没问题,或者为这个文件或类似的东西禁用错误?
答案 0 :(得分:4)
你可以这样做吗?
<external-path name="external_files" path="."/>
答案 1 :(得分:3)
如果有人像我一样来到这里,因为TypeScript中的Event
对象没有dataTransfer
属性:
只需使用DragEvent
。