react-dropzone TS2322类型错误:accept属性类型不兼容问题咨询
问题解决:react-dropzone@14.2.2 Accept类型不匹配错误
错误原因
你遇到的TypeScript类型错误,是因为TypeScript错误地将传入的accept对象推断为string | { "image/*": string[]; }联合类型,而useDropzone的DropzoneOptions中accept属性要求的是Accept类型,两者不兼容。
解决方案
方案1:通过类型断言明确指定类型
从react-dropzone导入Accept类型后,用类型断言告知TypeScript你的对象符合Accept类型:
import { useDropzone, Accept } from 'react-dropzone'; const { getRootProps, getInputProps, isDragActive } = useDropzone({ accept: { "image/*": [".jpeg", ".png", ".jpg"], } as Accept, });
方案2:改用字符串格式的accept值
如果不需要精细的MIME类型与扩展名映射,也可以直接传入逗号分隔的字符串:
const { getRootProps, getInputProps, isDragActive } = useDropzone({ accept: 'image/jpeg, image/png, image/jpg', });
内容的提问来源于stack exchange,提问作者khteh
相关产品推荐
相关产品推荐

