使用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
而不是String
或blob
时,我得到一个错误:Argument of type 'number' is not assignable to parameter of type 'string | Blob'.Vetur(2345)
且文件为{{1 }}。我猜一个null
在TS中有它自己的接口,只接受字符串或斑点吗?我该如何改写这种行为?
UPDATE1
Joe的评论建议使用FormData
,但是我的数字字段将是字符串。如果我用JSON.stringify()
将字符串化的数字转换回数字类型,则打字稿会抱怨类型。死了。
答案 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中的预期类型。