typescript - Angular D3 - Egenskapen 'getBoundingClientRect' finns inte på typen 'Window'


Jag har en stackblitz här - https://stackblitz.com/edit/ng-tootltip-ocdngb?file=src/app/bar-chart.ts

Jag har ett D3-diagram i en Angular-app.

Staplarna visar en verktygstips när man hovrar över dem.

På mindre skärmar är verktygstipset i mitten av fönstret.

För att göra detta behöver jag bredden på verktygstipset som jag får med

const toolTipWidth = tooltip.node().getBoundingClientRect().width;

Det här fungerar bra här men min faktiska app är en Angular CLI-app

Appen fungerar fortfarande men jag får felet

error TS2339: Property 'getBoundingClientRect' does not exist on type 'BaseType'.
  Property 'getBoundingClientRect' does not exist on type 'Window'.

Vad är det för fel och kan jag stoppa det.

Svar #1

Du kan helt enkelt kasta tooltip.node() som any för att kringgå detta:

const toolTipWidth = (tooltip.node() as any).getBoundingClientRect().width;

Korrekt typ bör förmodligen vara HTMLElement, det borde också fungera:

const toolTipWidth = (tooltip.node() as HTMLElement).getBoundingClientRect().width;

Relaterade artiklar