簡體   English   中英

Angular 屬性“offsetWidth”在“元素”類型上不存在

[英]Angular Property 'offsetWidth' does not exist on type 'Element'

angular 的新手,我正在嘗試使用 ScrollTrigger 進行水平滾動。

它可以工作,但是當我服務或構建時出現錯誤:“元素”類型上不存在屬性“offsetWidth”。

這是 gsap 的代碼:

gsap.to(sections, {
  xPercent: -100 * (sections.length - 1),
  ease: "none",
  scrollTrigger: {
    trigger: ".panel-container",
    pin: true,
    scrub: 1,
    snap: 1 / (sections.length - 1),
    end: () => "+=" + document.querySelector(".panel-container").offsetWidth
  }
});

即使我得到它的錯誤,當我控制台記錄“document.query ..”時,我得到了元素的良好寬度。

但是該錯誤阻止我構建。 我已經做了演員表的事情,首先是:

let myElem = document.querySelector(".panel-container").offsetWidth as HTMLElement;

或者之前,但這不起作用,我有帶有紅色下划線的錯誤消息:將類型“字符串”轉換為類型“HTMLElement”可能是一個錯誤,因為這兩種類型都沒有與另一種充分重疊。

我的 angular 項目是 10.0.5。

在回復中嘗試了解決方案:

(document.querySelector(".panel-container") as HTMLElement).offsetWidth;

但是在紅色下划線出現此錯誤,但在我發球時控制台中沒有任何內容。

將“Element”類型轉換為“HTMLElement”類型可能是一個錯誤,因為這兩種類型都沒有與另一種充分重疊。 如果這是故意的,請先將表達式轉換為“未知”。 “元素”類型缺少“HTMLElement”類型的以下屬性:accessKey、accessKeyLabel、autocapitalize、dir 和 105 more.ts(2352)

嘗試從querySelector輸入預期的 output 。

那是:

document.querySelector<HTMLElement>(".panel-container").offsetWidth

結果可能是 null,因此如果您啟用了 strictNullChecks,您需要先執行 null 檢查:

if (element.== null) {... }

暫無
暫無

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

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