TypeScript-DOM-lib-generator
TypeScript-DOM-lib-generator copied to clipboard
XMLDocument createElement should return an Element
When creating an XMLDocument instance, and then using that XMLDocument to create an Element, the type that is assigned is HTMLElement. It should be an Element.
Simple repro:
My compilation target is esnext and my lib is the default.
const xmlDoc = document.implementation.createDocument(null, 'root'); // the type of `xmlDoc` here is `XMLDocument`
const personElement = xmlDoc.createElement('person'); // the type of `personElement` here is `HTMLElement`
personElement.focus(); // Error: personElement.focus is not a function
Some relevant documentation: https://developer.mozilla.org/en-US/docs/Web/API/Document/createElement#return_value (Emphasis added)
Note: A new HTMLElement is returned if the document is an HTMLDocument, which is the most common case. Otherwise a new Element is returned.