Closed
Description
Before You File a Proposal Please Confirm You Have Done The Following...
- I have searched for related issues and found none that match my proposal.
- I have searched the current rule list and found no rules that match my proposal.
- I have read 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/no-unnecessary-type-parameters/
Description
Add suggestions with the intended fix.
Fail
function toUnknown<T>(x: T): unknown {
return x;
}
function withExtends<T extends number | string>(x: T): unknown {
return Math.random();
}
Pass
// replace unconstrained input generic with unknown
function toUnknown(x: unknown): unknown {
return x;
}
// replace constrained input generic with its constraint type
function withExtends(x: number | string): unknown {
return Math.random();
}
Additional Info
There are probably more cases where we could make suggestions, too. These are just the first things that came to mind. I think that adding these suggestions would have high value to help the user understood why the rule is reporting, since this rule is quite subtle