1. ホーム
  2. angular

タイプスクリプトのプロパティ 'files' がタイプ 'EventTarget' に存在しないエラー

2023-09-20 09:14:22

質問

ionic 2 アプリケーションから入力ファイルの値にアクセスしようとしているのですが、type 'EventTarget' にプロパティファイルが存在しないという問題に直面しています。 jsでは正常に動作していますが、typescriptでは動作していません。 コードは以下の通りです。

  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(...) . files のプロパティです。 input 要素になります。 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]; 
    //...
}