Стройный и машинописный: как добавить или расширить базовый компонент / компонент по умолчанию, такой как или

#typescript #svelte

Вопрос:

В моем приложении Svelte я пытаюсь разрешить пользователям загружать папки в дополнение к файлам. До сих пор я нашел единственный способ сделать это-использовать тег ввода с атрибутом type=»файл» и добавить атрибут webkitdirectory, который, к сожалению, является нестандартным. Тип ввода Svelte не имеет каталога webkit. Код работает, но я получаю ошибку машинописи » Свойство ‘webkitdirectory’ не существует для типа ‘SvelteInputProps'». Можно ли расширить типы по умолчанию в Svelte, чтобы я мог использовать такой тег ввода, как этот:

 lt;input  type="file"  multiple  webkitdirectory lt;-- attribute not accepted /gt;  

Ответ №1:

Это немного хак, но я использовал атрибут setAttribute следующим образом:

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

HTML:

 lt;input  type="file"  use:setAttributeWebkitdirectory /gt;