我有:const file = formData.get('documents[]')文件是什么类型?const file: FormDataEntryValue | null我需要访问file?.name。我得到了:类型“FormDataEntryValue”上不存在属性“name”。
const file = formData.get('documents[]')
const file: FormDataEntryValue | null
file?.name
jjhzyzn01#
FormDataEntryValue被定义为File和string的联合:type FormDataEntryValue = File | string;因此,首先需要检查变量是否确实是File:
type FormDataEntryValue = File | string;
if (file instanceof File) { console.log(file.name); }
c6ubokkw2#
类型“FormDataEntryValue”上不存在属性“name”。正如错误所说,看起来像是在FormData.get()中传递的key或file变量中的name属性不存在。FormData接口的get()方法始终返回与FormData对象中给定键关联的第一个值。因此,按照你的代码。看起来documents是一个对象数组。因此,您可以通过file[0]?.name而不是file?.name访问该名称
key
file
name
FormData
get()
file[0]?.name
formData.append('documents', '[{name: "alpha"}]'); const file = formData.get('documents') const fileName = file[0]?.name // returns alpha
k0pti3hp3#
FormData.get()返回类型为string | File | null的值。如果您知道它将是一个文件,请用途:
FormData.get()
string | File | null
const file = formData.get('documents[]') as File
下面是一个引用,https://dev.to/deciduously/formdata-in-typescript-24cl
3条答案
按热度按时间jjhzyzn01#
FormDataEntryValue被定义为File和string的联合:
type FormDataEntryValue = File | string;
因此,首先需要检查变量是否确实是File:
c6ubokkw2#
类型“FormDataEntryValue”上不存在属性“name”。
正如错误所说,看起来像是在FormData.get()中传递的
key
或file
变量中的name
属性不存在。FormData
接口的get()
方法始终返回与FormData
对象中给定键关联的第一个值。因此,按照你的代码。看起来documents是一个对象数组。因此,您可以通过
file[0]?.name
而不是file?.name
访问该名称k0pti3hp3#
FormData.get()
返回类型为string | File | null
的值。如果您知道它将是一个文件,请用途:
下面是一个引用,https://dev.to/deciduously/formdata-in-typescript-24cl