ael*_*ael 5 javascript casting typescript
当我运行代码时:
public onResize(event: Event) {
console.log(event.target.innerWidth);
//--solution--
//var w = event.target as Window;
//console.log(w.innerWidth);
}
Run Code Online (Sandbox Code Playgroud)
我收到一个错误:
Property innerWidth does not exist on type EventTarget
Run Code Online (Sandbox Code Playgroud)
我想避免在TypeScript中扩展类型(如此处所述,类型'EventTarget'上不存在属性'value'),所以我将event.target其强制转换为Window类。我不确定是否要上适当的课。我应该选哪个班?如何找到应上的适当班级?
Bra*_*don 10
调整大小事件使用UIEvent接口。
https://developer.mozilla.org/en-US/docs/Web/API/Window/resize_event
UIEvent 有一个 target 属性,不幸的是,它没有“innerWidth”属性。因此,相反,我们将事件的目标断言为 Window
IE
window.addEventListener('resize', (event: UIEvent) => {
const w = event.target as Window;
console.log(w.innerWidth) // works!
});
Run Code Online (Sandbox Code Playgroud)
如果您知道在哪个元素上注册了事件侦听器,那么您可以强制转换event.target为该元素类型。我想没有什么可说的了。或者,您可以直接引用您在其上注册侦听器的元素(在本例中只是全局window),而不是使用event.target。
| 归档时间: |
|
| 查看次数: |
706 次 |
| 最近记录: |