Typescript hatasından nasıl kaçınılır: 'Element' türünde 'innerHTML' özelliği yok


Belirli bir div'in içine bazı HTML yerleştirmeye çalışıyorum. Bunu TypeScript'te denediğimde şu hatayı alıyorum: Property 'innerHTML' does not exist on type 'Element'. Temelde, kod şöyle:

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

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

Şaşırtıcı bir şekilde, typescript derlediğinde hala çalışıyor, ama typescript bana bir hata veriyorsa, bu durumda innerHTML atamanın doğru yolu nedir?

Cevap #1

Derleyiciyi yatıştırmak için bir tür bildirimi kullanın:

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

Cevap #2

Gelecek TypeScript sürümlerinde, bu tür dönüşümü yapmak gerekli olmamalıdır. Sorunu düzeltmek için bir pull request gönderdim:

  • hata: 'Element' türünde 'innnerHTML' özelliği mevcut değil (https://github.com/Microsoft/TypeScript/issues/5754)
  • https://github.com/Microsoft/TSJS-lib-generator/pull/35 (zaten birleştirildi)

İlgili makaleler