typescript - Angular D3 - ویژگی 'getBoundingClientRect' در نوع 'Window' وجود ندارد
من یک Stackblitz اینجا دارم - https://stackblitz.com/edit/ng-tootltip-ocdngb?file=src/app/bar-chart.ts
من یک نمودار D3 در یک برنامه انگولار دارم.
نوارها هنگام قرار گرفتن نشانگر ماوس روی آنها، راهنمای ابزار را نشان میدهند.
در صفحهنمایشهای کوچکتر، راهنمای ابزار در مرکز پنجره قرار دارد.
برای انجام این کار من به عرض راهنمای ابزار نیاز دارم که آن را با بدست میآورم
const toolTipWidth = tooltip.node().getBoundingClientRect().width;
این اینجا به خوبی کار میکند اما برنامه واقعی من یک برنامه Angular cli است
برنامه هنوز اجرا میشود اما من خطا دریافت میکنم
error TS2339: Property 'getBoundingClientRect' does not exist on type 'BaseType'.
Property 'getBoundingClientRect' does not exist on type 'Window'.
این خطا چیست و آیا میتوانم آن را متوقف کنم.
پاسخ شماره ۱
شما میتوانید به سادگی tooltip.node() را به عنوان any تبدیل کنید تا از این مشکل عبور کنید:
const toolTipWidth = (tooltip.node() as any).getBoundingClientRect().width;
نوع صحیح احتمالاً HTMLElement باید باشد، که این هم باید کار کند:
const toolTipWidth = (tooltip.node() as HTMLElement).getBoundingClientRect().width;
