1
我正在編寫依賴於事件的dataTransfer
的拖放交互的單元測試。另外我正在使用打字稿。爲了模擬事件(S)我寫了這個小功能:在TypeScript中爲拖拽事件模擬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;
}
然而,打字稿告訴我
TS2339:房產「數據傳遞」不上鍵入「自定義事件」存在。
我不能不使用dataTransfer
因爲我不能設置其職能的數據或間諜我不能使用native DragEvent
秒。有沒有辦法解決這個問題,例如告訴TypeScript,dataTransfer
是好的,或者禁用此文件的錯誤或類似的東西?
是的!謝謝!最後我不得不做'CustomEvent&{dataTransfer?:任何}',但你的方法工作! – Lukas