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)
