我想使用 Typescript 循环使用for in
循环的FileList。
我开始使用常规的旧for循环,这非常有效:
let files:FileList = e.target.files
for(let i = 0;i<files.length;i++){
doSomething(files[i])
}
function doSomething(f:File){
}
但是当我使用较短的for..in
循环时:
for(let f in files){
doSomething(f)
}
我收到错误:Argument of type 'string' is not assignable to parameter of type 'File'
。所以f
被认为是一个字符串,即使FileList包含Files而不是字符串。
这些修补程序无效:
for(let f:File in files){ // left hand assignment not allowed
doSomething(f as File) // cannot convert string to File
}
这是不可能的吗?
答案 0 :(得分:2)
您无法使用
进行迭代for(let f in files){
doSomething(f)
}
FileList不是一个数组,但它确实符合它的合同(有 长度和数字索引),所以我们可以&#34;借用&#34;数组方法:
你必须根据长度进行迭代。
您必须遵循此语法
for(let i = 0;i<files.length;i++){
doSomething(files[i])
}
指api