我正在使用打字稿,我有一个文件上传表格。但我的打字稿返回错误。
$('body').on('change', '#upload_button input[type="file"]', (evt)=>{
let file_list = evt.target.files;
});
这是错误:
“元素”类型
上不存在属性“文件”
如何解决此错误?
答案 0 :(得分:0)
对于打字稿文件,不是HTMLElement
类型的方法。尝试将元素的类型更改为HTMLInputElement
实施例
let fileInput : HTMLInputElement = <HTMLInputElement>document.getElementById('input');
答案 1 :(得分:0)
错误Property 'files' does not exist on type 'Element'
通过以下方式解决:
$('body').on('change', '#upload_button input[type="file"]', (evt)=>{
evt.preventDefault()
const fileInput: HTMLInputElement = <HTMLInputElement>document.querySelector(event.currentTarget);
const file = fileInput.files[0];
...
});
答案 2 :(得分:0)
请记住,$(...)始终返回元素列表。用[0]获取第一个(也是唯一的),并将其转换为HTMLInputElement
。
$('body').find('#upload_button input[type="file"]')
.on('change', (evt: JQuery.TriggeredEvent) => {
let input = <HTMLInputElement>$(evt.currentTarget)[0];
let file_list = input.files;
//...
});
files
是HTMLInputElement