質問: event.target.result } を試したところエラーが消え、正しく動いてくれました ただ、このコードの読み方、そしてなぜこの書き方だとエラーが消えるのか分かりません & {target: {result:string}} ここの部分はどのような意味なのでしょうか
回答: 筆者はTypeScriptについては判りませんので, 詳細をご存じの方は補足をお願いいたします. 以下のコードはJavaScriptとしては正しいコードです. ``` let reader = new FileReader() reader.onload = event => { this.image_path = event.target.result } ``` しかし, TypeScriptの実行環境においては, `Event`クラスの`target`プロパティ(`EventTarget`オブジェクト)に`FileReader`オブジェクトが設定されているケースが考慮されていないのでしょう. そのため, この型(インターフェース)情報を補う目的で次のような記法を用いているのだと推測されます. ``` reader.onload = (event:Event & {target: {result:string}}) => { this.image_path = event.target.result } ``` コードを見るに, 「引数`event`は`Event`型であり, かつ(`&`)その`target`プロパティには『`string`型のプロパティ`result`をもつオブジェクト』が設定されている.」ことをTypeScriptコンパイラに伝えているように見えます.