gpt4 book ai didi

typescript - For In loop with Filelist 返回错误的类型

转载 作者:搜寻专家 更新时间:2023-10-30 21:37:36 27 4
gpt4 key购买 nike

我想使用 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)
}

我收到一个错误:“字符串”类型的参数不可分配给"file"类型的参数。所以 f 在某种程度上被认为是一个字符串,即使 FileList 包含文件,而不是字符串。

这些修复不起作用:

for(let f:File in files){ // left hand assignment not allowed
doSomething(f as File) // cannot convert string to File
}

这是不可能的吗?

最佳答案

你不能迭代使用

for(let f in files){
doSomething(f)
}

A FileList is not an Array, but it does conform to its contract (has length and numeric indices), so we can "borrow" Array methods:

您必须根据长度进行迭代。

你必须遵循这个语法

for(let i = 0;i<files.length;i++){
doSomething(files[i])
}

指的是api

https://developer.mozilla.org/en-US/docs/Web/API/FileList

关于typescript - For In loop with Filelist 返回错误的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48927930/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com