Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork2.8k
Closed
Description
Before You File a Proposal Please Confirm You Have Done The Following...
- I havesearched for related issues and found none that match my proposal.
- I have searched thecurrent rule list and found no rules that match my proposal.
- I haveread the FAQ and my problem is not listed.
My proposal is suitable for this project
- I believe my proposal would be useful to the broader TypeScript community (meaning it is not a niche proposal).
Link to the rule's documentation
https://typescript-eslint.io/rules/ban-types/
Description
I think that it would be useful to ban certain types from being extended. The job of the rule is to ban the usage of certain types and provide an alternative way if possible. Creating a new interface and extending from a harmful/confusing type also will introduce the usage of that not wanted type.
One use case might be to eliminate the usage ofHTMLProps andHTMLAttributes.
Fail
interfacePropsextendsfromHTMLProps<HTMLButtonElement>{}
Pass
interfacePropsextendsfromComponentPropsWithoutRef<'div>'{}
Additional Info
Link to the resource on whyHTMLProps andHTMLAttributes can be problematic:https://react-typescript-cheatsheet.netlify.app/docs/advanced/patterns_by_usecase/#wrappingmirroring-a-html-element