title: Type 'ChildNode' is missing the following properties from type 'HTMLOptionElement'
body: <p>This is my method: </p>
  
  <pre class="lang-ts prettyprint-override"><code>public deleteSelectOption( index: number ): void {
    this.elements.lyricsLineSelect.forEach( ( el: HTMLSelectElement )  =&gt; {
      el.childNodes[ index ].remove();
      el.childNodes.forEach( ( option: HTMLOptionElement, i: number ) =&gt; {
        if( i &gt;= index ){
          option.value = i.toString();
          option.textContent =  `${ i + 1 }. ${ this.lyrics[ i ].text }`;
        }
      } );
    } );
  }
  </code></pre>
  
  <p>I'm getting this error when trying to iterate through el.childNode using forEach loop: </p>
  
  <pre><code>Argument of type '(option: HTMLOptionElement, i: number) =&gt; void' is not assignable to parameter of type '(value: ChildNode, key: number, parent: NodeListOf&lt;ChildNode&gt;) =&gt; void'.
  Types of parameters 'option' and 'value' are incompatible.
  Type 'ChildNode' is missing the following properties from type 'HTMLOptionElement': defaultSelected, disabled, form, index, and 190 more.ts(2345)
  </code></pre>
  
  <p>How to let typescript to know that <code>el.childNodes</code> is an array of <code>HTMLOptionElement</code> ? </p>