Svelte och TypeScript: hur man lägger till eller utökar en bas-/standardkomponent såsom
eller


I min Svelte-app försöker jag tillåta användare att ladda upp mappar utöver filer. Hittills är det enda sättet jag har hittat för att göra detta att använda en input-tagg med attributet type="file" och lägga till webkitdirectory-attributet, vilket tyvärr inte är standard. Sveltes input-typ har inte webkitdirectory. Koden fungerar men jag får TypeScript-felet "Property 'webkitdirectory' does not exist on type 'SvelteInputProps'". Är det möjligt att utöka standardtyperna i Svelte, så att jag kan använda en input-tagg som denna:

<input
  type="file"
  multiple
  webkitdirectory  <-- attribute not accepted
/>

Svar #1

Det är lite av en snabbfix, men jag använde setAttribute på följande sätt:

function setAttributeWebkitdirectory(node) {
    node.setAttribute('webkitdirectory', '');
}

html :

<input
    type="file"
    use:setAttributeWebkitdirectory
/>