簡體   English   中英

錯誤 TS:“元素”類型上不存在屬性“數據集”

[英]error TS: Property 'dataset' does not exists on type 'Element'

在 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"}

你知道如何擺脫這個錯誤嗎? 我想這是一個打字稿錯誤,但在它顯示時我找不到任何原因以及如何避免它。

先感謝您。

屬性dataset不存在於Element類型上,但存在於HTMLElement 在繼續之前,您需要確保它是這種類型。 它還可以稍微調整您的 for 循環:

for (const timelineEl of timelineEls) {
  if (timelineEl instanceof HTMLElement) {
    const progress = self.getProgress(timelineEl);
    const timelineKey = timelineEl.dataset.scrollTimeline;
    // ...
  }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM