在angular8环境中的编译过程中,终端出现此错误。 在本地主机上,我浏览页面时没有任何问题,并且在控制台中没有任何错误。 我为分配了该数据集属性的变量创建了一个console.log,并且可以正确读取它。 下面是感兴趣的代码部分:
let timelineEls = document.querySelectorAll('[data-scroll-timeline]');
scroll.on("scroll", () => {
for ( let i = 0; i < timelineEls.length; i++ ) {
let progress = self.getProgress(timelineEls[i]);
let timelineKey = timelineEls[i].dataset.scrollTimeline;
console.log(timelineEls[i].dataset);
let timeline = timelines[timelineKey]._recent;
let timeline = timelines[timelineKey];
let duration = timeline.duration();
if ( progress > 0 && progress <= 1 ) {
timeline.seek(progress * duration);
} else {
if ( progress <= 0 ) {
timelines[timelineKey].seek(0);
} else {
timelines[timelineKey].seek(duration);
}
}
}
})
console.log正确标记以下内容:DOMStringMap {scroll:“”,scrollTimeline:“ albed-anim”}
您是否知道如何消除此错误?我猜这是一个打字稿错误,但在显示时以及如何避免它时我找不到任何原因。
先谢谢您。
答案 0 :(得分:4)
属性dataset
在类型Element
上不存在,但在HTMLElement
上存在。在继续操作之前,您需要确保它属于这种类型。它还可以稍微调整一下for循环:
for (const timelineEl of timelineEls) {
if (timelineEl instanceof HTMLElement) {
const progress = self.getProgress(timelineEl);
const timelineKey = timelineEl.dataset.scrollTimeline;
// ...
}
}