我有这个方法:
class Foo {
private getDistanceFromTop (el: HTMLElement): number {
return el.scrollY || el.scrollTop;
}
}
el
参数是动态的,可以是HTMLElement
或window
对象。我尝试使用Window
将其转换为as
类型,但会出现另一个编译错误:Type 'HTMLElement' cannot be converted to type 'Window'
。那么如何修改此代码以使其通过TS验证而不使用:any
类型?
答案 0 :(得分:2)
HTMLElement和Window是两种不同的类型,所以你可以这样做:
class Foo {
private getDistanceFromTop(el: HTMLElement | Window) {
if (el instanceof Window) {
return el.scrollY;
}
return el.scrollTop;
}
}