2017-11-13 7 views
2

新しいimage()とtypescriptを使って読み込んだ画像から情報を得たいです。私はこのコードを試してみてください。typescriptのimageからonloadイベントを使用するにはどうすればよいですか?

width; 
heigth; 
init(){ 
    let image = new Image(); 
    image.src = "url"; 

    image.onload((event) => { 
    this.width = event.width; 
    this.heigth = event.heigth; 
    }) 
} 

をしかし、私はこのエラーを取得:

void' is not assignable to parameter of type 'Event'. Property 'bubbles' is missing in type '() => void'

私はこのイベントを使用する方法の例を検索するが、私は何かを見つけることができません。

答えて

3

イベントハンドラを割り当てるのではなく、onloadを呼び出そうとしています。ここではあなたのためのクイックフィックスは、あなたもそのためのタイプを特化する必要があるかもしれないので、あなたはまた、一般的なEventタイプは幅と高さを持っていないことがわかります...

image.onload = (event) => { 
    // ... 
}; 

です。

interface SizedEvent { 
    width: number; 
    height: number; 
} 

function isSizedEvent(e: any): e is SizedEvent { 
    return (e && e.width !== undefined && e.height !== undefined); 
} 

image.onload = (event) => { 
    if (isSizedEvent(event)) { 
    // event.width is now available 
    } 
}; 
関連する問題