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/use-unknown-in-catch-callback-variable/
Description
I propose an option to only check on inline functions, i.e. .catch((foo) => bar)
and not .catch(baz)
. If baz
accepts any
, it's either from an external library or will be flagged by --noImplicitAny
/no-explicit-any
.
Use case: I have a few instances of .catch(console.error)
in my codebase to log errors without throwing. console.error
is typed as (...data: any[]): void
, and as such this rule triggers an error.
Fail
Promise.resolve().catch((error) => error) // Preserve old behavior
Pass
Promise.resolve().catch((error: unknown) => error) // Preserve old behavior
Promise.resolve().catch(console.log) // Would previously error
Promise.resolve().catch(foo) // Would previously error
function foo(bar: any) { }
Additional Info
No response