TS: Make sure components with interfaces or no props don't raise decorator assignability issues #21833
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.
Closes #21768
What I did
When using interfaces as Props for a component, decorators give TS issues when it is not used inline (so as a seperate function).
I now convert Args defined as an interface into a type, to make sure we don't get those kind of assignability issues.
The Simplify type-fest utlity seems to well-suited for this purpose:
https://github.com/sindresorhus/type-fest/blob/2e498662b7cdb8e70fbaa9864d7d860e48983a40/source/simplify.d.ts#L1-L3
The actual change is in a package outside of the monorepo, see this PR:
ComponentDriven/csf#65
How to test
See the added unit tests.
Checklist
MIGRATION.MD
Maintainers
make sure to add the
ci:merged
orci:daily
GH label to it.["cleanup", "BREAKING CHANGE", "feature request", "bug", "documentation", "maintenance", "dependencies", "other"]