I would like to correctly type the on:drop
event with Svelte so I can access dataTransfer
.
I've typed the event with the native Event
but datatransfer is not present.
<div on:drop={handleDrop}> dropzone </div>
<script lang="ts">
function handleDrop(event: Event) {
const files = event.dataTransfer.files
}
</script>
This makes typescript throw an error:
Property 'dataTransfer' does not exist on type 'Event'.ts(2339)
How to properly type this kind of events ? I would preferably not cast anything
CodePudding user response:
The dataTransfer property is available only from some events. When listening on drop
you should listen for DragEvent.
<div on:drop={handleDrop}> dropzone </div>
<script lang="ts">
function handleDrop(event: DragEvent) {
const files = event.dataTransfer.files
}
</script>