Typescript - 'HTMLElement'类型中不存在属性'scrollY'

时间:2016-11-11 15:47:22

标签: typescript

我有这个方法:

class Foo {
    private getDistanceFromTop (el: HTMLElement): number {
        return el.scrollY || el.scrollTop;
    }
}

el参数是动态的,可以是HTMLElementwindow对象。我尝试使用Window将其转换为as类型,但会出现另一个编译错误:Type 'HTMLElement' cannot be converted to type 'Window'。那么如何修改此代码以使其通过TS验证而不使用:any类型?

1 个答案:

答案 0 :(得分:2)

HTMLElement和Window是两种不同的类型,所以你可以这样做:

class Foo {
  private getDistanceFromTop(el: HTMLElement | Window) {
    if (el instanceof Window) {
      return el.scrollY;
    }
    return el.scrollTop;
  }
}