Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork2.8k
Open
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/no-unsafe-argument
Description
Currentlyno-unsafe-argument doesn't catch object arguments with nestedany types. For example:
// Imagine this is a value received from a library.declareconstfromLib:{foo:any};// Imagine this is a function defined in user-land.declareconstfn:(x:{foo:number})=>string;// This is unsafe due to the inner `any` type.fn(fromLib);
A real world example of where this comes up is React Router'suseLocation hook, which returns aLocation object where thestate property has typeany.
Would it make sense to extend this lint rule to check foranys nested inside object types?
Fail
// Imagine this is a value received from a library.declareconstfromLib:{foo:any};// Imagine this is a function defined in user-land.declareconstfn:(x:{foo:number})=>string;// This is unsafe due to the inner `any` type.fn(fromLib);
Pass
declareconstfromLib:{foo:number};declareconstfn:(x:{foo:number})=>string;fn(fromLib);
Additional Info
No response