typescript - document.readyState 的正确类型是什么?解决错误 readyState 不是 EventTarget 类型
问题描述
在页面进入“完成”的就绪状态后,我需要调用函数“start()”。这是为了确保加载所有资源并加载页面。问题是 TypeScript 中无法识别类型 readyState ,因为我从找到的示例中编写了它https://developer.mozilla.org/en-US/docs/Web/API/Document/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'”。
解决方案
您需要将类型缩小为event.target
具有readyState
或仅this
用于您的元素的类型:
PUTWindow.addEventListener('readystatechange', function(event) {
if (this.readyState === 'interactive') {
initLoader();
}
});
推荐阅读
- centos7 - qemu-kvm 崩溃“来自 qemu 监视器的文件结束”
- sql - 如何在 SQL Server 中提取字符串的特定部分?
- arrays - API 在检索所有记录时返回对象数组,但在过滤时仅返回单个对象
- python-3.x - FB Prophet 检测到不正确的变化点
- scala - 如何获取 Kafka 消费者(Alpakka)返回的 Map [String, String]?
- c# - 防止虚函数调用的泛型?
- apache-kafka - 是否可以仅使用消息(即使用 kafka)触发 oozie 工作流程
- sentiment-analysis - 情绪分析中的人工智能偏见
- r - R:用carrier::crate包装部分环境以预测新数据
- nginx - Nginx php-fpm“找不到文件”和可疑符号