feat: add the ability override extended interfaces, fixes HTMLElement onerror type #2148
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
This PR started as a fix for this TypeScript issue. To handle it, I needed to update how the
emitter.ts
handled generating interfaces.The
HTMLElement
extends theGlobalEventHandlers.onerror
property. I didn't want to blow away the whole type to handle this fix. I thought something more flexible would make fixes like this scalable.I was looking at
and thought that is where I could add the flexibity by adding a new key but I didn't want to break any existing functionality or misuse a type.
I added
It allows you to define a type and override its interfaces when unique cases arise.
I've included fixes for
HTMLElement
andSvgElement
. If these changes are approved but we'd like to split the PR up into discrete chunks that's no problem. I'm also open to other approaches so if there's a more obvious place to bring this in I can update the PR.