Hvordan unngå TypeScript-feil: Egenskapen 'innerHTML' finnes ikke på typen 'Element'


Jeg prøver å plassere noe HTML inni en spesifikk div. Når jeg prøver dette i TypeScript får jeg denne feilen: Property 'innerHTML' does not exist on type 'Element'. Dette er i utgangspunktet koden:

document.body.innerHTML = '<div id="myDiv"><div>'

let myContainer = document.querySelector("#myDiv");
myContainer.innerHTML = '<h1>Test</h1>';

Mest overraskende fungerer det fortsatt når TypeScript kompilerer, men jeg lurer på, hvis TypeScript gir meg en feil, hva er den riktige måten å fortsette med å tilordne innerHTML i dette tilfellet?

Svar #1

Bruk en typepåstand for å tilfredsstille kompilatoren:

let myContainer = <HTMLElement> document.querySelector("#myDiv");
myContainer.innerHTML = '<h1>Test</h1>';

Svar #2

I fremtidige versjoner av TypeScript bør det ikke være nødvendig å gjøre typekonverteringen. Jeg har sendt en pull request for å fikse problemet:

  • feil: Egenskapen 'innnerHTML' finnes ikke på typen 'Element' (https://github.com/Microsoft/TypeScript/issues/5754)
  • https://github.com/Microsoft/TSJS-lib-generator/pull/35 (allerede slått sammen)

Relaterte artikler