TypeScript 和文件上传类型

Álv*_*aro 4 javascript typescript reactjs

我正在尝试设置文件上传的类型,但我不敢相信我必须定义文件对象上的每个属性

export type FileProps = {
  path: string 
  lastModified: number
  slice: () => void
  stream: () => void
  text: () => void
  arrayBuffer: ArrayBuffer
  name: string
  size: number
  type: string
}

const [files, setFiles] = useState<FileProps[]>([])
Run Code Online (Sandbox Code Playgroud)

我上传了一些文件并将它们存储在状态中,但是当我尝试添加到表单时

const formData = new FormData()

for (const file of files) {
  formData.append('files', file)
}
Run Code Online (Sandbox Code Playgroud)

我收到文件错误

在此输入图像描述

Ale*_*yne 9

如果你只使用File,那么你就会得到你想要的:

const [files, setFiles] = useState<File[]>([])

const formData = new FormData()

for (const file of files) {
  formData.append('files', file)
}
Run Code Online (Sandbox Code Playgroud)

这应该让您获得此处记录的所有字段:https ://developer.mozilla.org/en-US/docs/Web/API/File

查看游乐场