Svelte en TypeScript: hoe een basis-/standaardcomponent zoals <div /> of <input/> toe te voegen of uit te breiden
In mijn Svelte-app probeer ik gebruikers in staat te stellen mappen te uploaden naast bestanden. Tot nu toe is de enige manier die ik heb gevonden om dit te doen door een input-tag te gebruiken met het attribuut type="file" en het webkitdirectory-attribuut toe te voegen, wat helaas niet-standaard is. De Svelte-inputtype heeft geen webkitdirectory. De code werkt, maar ik krijg de TypeScript-fout "Property 'webkitdirectory' does not exist on type 'SvelteInputProps'". Is het mogelijk om de standaardtypes in Svelte uit te breiden, zodat ik een input-tag zoals deze kan gebruiken:
<input
type="file"
multiple
webkitdirectory <-- attribute not accepted
/>
Antwoord #1
Het is een beetje een trucje, maar ik gebruikte setAttribute als volgt:
function setAttributeWebkitdirectory(node) {
node.setAttribute('webkitdirectory', '');
}
html :
<input
type="file"
use:setAttributeWebkitdirectory
/>
