fix(types): canvas type improvements #2422
Merged
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.
Improve typing on createRoot by declaring that it handles HTMLCanvasElement | OffscreenCanvas. This is more expressive than accepting any subclass of Element and allows some generic type params to be removed.
Two reasons this is a draft:
createRoot
seems like a clear DX improvement, the function is part of the publicly documented API of r3f so this could be considered a small breaking changeOffscreenCanvas
typing. Currently, I import it from the three definitely typed definitions but the def there seems non-ideal. I was a bit surprised that the type isn't defined indom.lib.d.ts
. Poking around, it seems that it is, however, defined inlib.webworker.d.ts
meaning that it's possible to modify thetsconfig
to includeWebWorker
. I wouldn't recommend this approach since generally the code in this repo is intended for the main thread so making worker-side types universally available is probably a bad idea. Open to suggestions here.