我试图从我的ionic 2应用程序中访问输入文件的值,但我仍然面临"EventTarget"类型上不存在属性文件的问题.

  document.getElementById("customimage").onchange= function(e?) {
            var files: any = e.target.files[0]; 
              EXIF.getData(e.target.files[0], function() {
                  alert(EXIF.getTag(this,"GPSLatitude"));
              });
          }

请帮助我解决这个问题,因为它不是在构建我的ionic 2应用程序.

推荐答案

e.target属性类型取决于在getElementById(...)上返回的元素.filesinput元素的属性:https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement

在本例中,TypeScript编译器不知道您返回的是input元素,我们也没有专门针对这一点的Event类.因此,您可以创建如下代码:

interface HTMLInputEvent extends Event {
    target: HTMLInputElement & EventTarget;
}

document.getElementById("customimage").onchange = function(e?: HTMLInputEvent) {
    let files: any = e.target.files[0]; 
    //...
}

Typescript相关问答推荐

类型脚本:类型是通用的,只能索引以供阅读.(2862)"

无法从应用程序内的库导入组件NX Expo React Native

无法将select选项的值设置为ngFor循环中的第一个元素

如何在排版中正确键入中间件链和控制器链

不推荐使用Marker类-Google map API警告

类型脚本中没有接口的中间静态类

匿名静态类推断组成不正确推断

在函数中打字推断记录的关键字

Angular文件上传到Spring Boot失败,多部分边界拒绝

如何将父属性类型判断传播到子属性

刷新时保持当前名称的Angular

是否有可能避免此泛型函数体中的类型断言?

在Cypress中,是否可以在不标识错误的情况下对元素调用.Click()方法?

为什么在泛型方法中解析此promise 时会出现类型错误?

两个子组件共享控制权

剧作家测试未加载本地网址

使用受保护的路由和入门来响应路由

基于可选参数的动态类型泛型类型

如何确定单元格中的块对 mat-h​​eader-cell 的粘附(粘性)?

在Typescript 中,是否有一种方法来定义一个类型,其中该类型是字符串子集的所有可能组合?