FormData的类型-打字稿3.5

时间:2019-07-12 10:41:00

标签: typescript

使用formdata:

const formData = new FormData()
formData.append('document_title', this.document.document_title)
formData.append('file', this.document.file)
formData.append('document_language', this.document.document_language)

文档界面:

export interface IDocument {
  document_title: string
  file: File | null
  document_language: number
}

错误来了,当我尝试formData.append而不是Stringblob时,我得到一个错误:Argument of type 'number' is not assignable to parameter of type 'string | Blob'.Vetur(2345)且文件为{{1 }}。我猜一个null在TS中有它自己的接口,只接受字符串或斑点吗?我该如何改写这种行为?

UPDATE1

Joe的评论建议使用FormData,但是我的数字字段将是字符串。如果我用JSON.stringify()将字符串化的数字转换回数字类型,则打字稿会抱怨类型。死了。

1 个答案:

答案 0 :(得分:0)

使用as any类型断言解决了编译器:

formData.append('document_title', this.document.document_title)
formData.append('file', this.document.file as any)
formData.append('document_language', this.document.document_language as any)

JSON.stringify()我的电话号码数据对我来说是错误的。在后端,我将formdata字符串转换为要存储在db中的预期类型。