javascript - 无法使用 Array.from 将 FileList 转换为 Array 并在 typescript 中传播语法

标签 javascript arrays typescript file types

这一行 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/

相关文章:

javascript - 使用 d3.js 创建词云

javascript - Angular-UI-Router - 获取动态模板的内容

PHP 类更新数组 - 如何提高效率

typescript - 如何解决 react native 屏幕 typescript 中未定义的route.params

angular - 如何使用 ionic-3 中的表单数据对图像文件发出发布请求

javascript - XMLHttpRequest 无法加载 https ://api. vineapp.com/timelines/popular。请求的资源上不存在 'Access-Control-Allow-Origin' header

javascript - 滚动宽度总是返回未定义

javascript - 如何在 javascript 或 jquery 中解析具有嵌套数组的 JSON

c - 如何在排序之前获取数组中数字的前一个位置?

javascript - 如何在异步验证器中使用 debounceTime() 和 distinctUntilChanged()