如何在typescript中使用Image中的onload事件?

时间:2017-11-13 14:37:00

标签: typescript

我想从使用带有打字稿的新图像()加载的图像中获取一些信息。我试试这段代码:

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

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

但是我收到了这个错误:

  

void'不能分配给'Event'类型的参数。属性   '()=>类型中缺少'bubbles'无效“

我搜索有关如何使用此事件的示例,但我找不到任何内容。

1 个答案:

答案 0 :(得分:4)

您正在尝试调用onload而不是分配事件处理程序。这是一个快速解决方案......

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

您还会发现一般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
  }
};