首页 > 解决方案 > 我应该如何在打字稿中将 Blob/File 数组附加到 formData?

问题描述

如果我没有文件数组,这会很好。但它必须是一个数组。

  let file1 = new File([""], "filename");
  let file2 = new File([""], "filename");
  let files = [file1, file2];
  let formData = new FormData();
  formData.append('files', files);

这在javascript中工作得很好。在打字稿中,我收到此错误。

TS2345: Argument of type 'Blob[]' is not assignable to parameter of type 'string | Blob'.   Type 'Blob[]' is not assignable to type 'string'.

除了 // @ts-ignore 我还能做什么?

此外,我正在使用的其余 api 要求 formData 是一个 Blob/文件数组,所以我不能在那里更改任何内容。

标签: javascripttypescriptfileblob

解决方案


您可能必须执行以下操作:

let file1 = new File([""], "filename");
let file2 = new File([""], "filename");
let files = [file1, file2];
let formData = new FormData();
for (let file of files){
    formData.append('files', file);
}

你会告诉我这是否有效吗?

我认为这是基于这里的讨论的原因:How use formData.append for a array in typescript


推荐阅读