这一行
const files = Array.from(e.target.files);
在 typescript 中产生错误。
我是 typescript 的新手。看起来对象不是数组,但实际上是。我该怎么做才能解决这个问题?
错误是:
“没有与此调用匹配的过载。 重载 1 of 4,'(iterable: Iterable | ArrayLike): File[]',出现以下错误。 'FileList | 类型的参数null' 不可分配给 'Iterable | 类型的参数ArrayLike'。 类型 'null' 不可分配给类型 'Iterable | ArrayLike'。 重载 2 of 4,'(arrayLike: ArrayLike): File[]',出现以下错误。 'FileList | 类型的参数null' 不可分配给 'ArrayLike' 类型的参数。 类型‘null’不可分配给类型‘ArrayLike’。”
代码如下:
import { ChangeEvent } from 'react';
import './styles.css';
export function App() {
const handleFileLoad = function (e: ChangeEvent<HTMLInputElement>) {
const files = Array.from(e.target.files);
// I want to use forEach here, so I attempt to convert it to an array.
};
return (
<div>
<input type="file" onChange={handleFileLoad} />
</div>
);
}
最佳答案
你得到错误的原因是 e.target.files
中的 files
可能为空,这可能导致 Array.from(e .target.files)
错误,因此 TypeScript 有点提示您为该场景提供后备。
关于javascript - 无法使用 Array.from 将 FileList 转换为 Array 并在 typescript 中传播语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71798548/