types: improve the types returned by styled #32
+542
−21
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.
improvements, in no particular order:
if we were to use a style prop that already existed on the component, our type would not reflect it
in this example, previously
onClick
wasMouseEventHandler<HTMLDivElement> & string
, but because style props are filtered, a more correct type is juststring
because style props are filtered, if a required component prop and a style prop share a name we now get a type error
previously, if style props was a function our component props were expanded to
Record<string, unknown>
which would let us add incorrect propsthis also adds support for generic type propagation, so if we style a generic function component the generic will be preserved. do note that generic class components will not be propagated, only generic function components.