解决Ionic生产构建时EventTarget无files属性的TS2339报错
修复TypeScript生产构建时的
TS2339错误 这个错误是因为生产构建模式下TypeScript启用了严格类型检查,EventTarget类型本身没有files属性,而你这里的目标元素是文件输入框(HTMLInputElement),所以需要通过类型断言明确告知TypeScript目标元素的类型。
修复方案一:直接在模板中添加类型断言
修改模板里的change事件绑定代码:
<input type="file" id="upload" (change)="uploadImage(($event.target as HTMLInputElement)?.files)" accept="image/*" hidden />
修复方案二:在组件类中处理类型断言(更推荐)
- 先修改模板,把整个事件对象传给方法:
<input type="file" id="upload" (change)="uploadImage($event)" accept="image/*" hidden />
- 然后在组件的
uploadImage方法里做类型断言并获取文件:
uploadImage(event: Event) { const inputElement = event.target as HTMLInputElement; const files = inputElement?.files; // 这里写你的文件上传逻辑 }
两种方案都能解决类型检查报错的问题,方案二更符合TypeScript的代码规范,也便于后续对事件对象做更多处理。
内容的提问来源于stack exchange,提问作者Felix
相关产品推荐
相关产品推荐

