在页面进入“ complete”状态后,我需要调用函数“ start()”。这是为了确保所有资源都已加载并且页面已加载。问题在于,正如我从找到的示例https://developer.mozilla.org/en-US/docs/Web/API/Document/readyState中编写的那样,TypeScript中无法识别readyState类型。
我试图将代码'event.target.readyState'更改为'(event.target as Document).readyState',该代码允许进行编译,但是从不调用start()函数。
PUTWindow.addEventListener('readystatechange', event=> {
if (event.target.readyState === 'interactive') {
initLoader();
}
else if (event.target.readyState === 'complete') {
let bodyEl: HTMLElement = PUTWindow.document.body;
start(PUTWindow);
}
});
这将导致以下错误消息指向readyState “类型'EventTarget'.ts(2339)上不存在属性'readyState'。”
答案 0 :(得分:0)
您需要将event.target
的类型缩小到具有readyState
的类型,或者只对元素使用this
:
PUTWindow.addEventListener('readystatechange', function(event) {
if (this.readyState === 'interactive') {
initLoader();
}
});