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-return/
Description
I can see from previous discussions in#8674 that there was a decision not to ban returningPromise<any>
in returns from non-async promises.
It would be quite nice to allow banning this type since there are situations, such as below, where code can be written with chained promises whereany
s can be allowed into code without any errors.
declarefunctionhello(getName:()=>Promise<string>):Promise<void>;// Avoids error currentlyawaithello(()=>fetch("/name/get").then((i)=>i.json()));// Gives errorawaithello(async()=>fetch("/name/get").then((i)=>i.json()));// Gives errorawaithello(async()=>{constresponse=awaitfetch("/name/get");returnawaitresponse.json();});
Fail
declarefunctionhello(getName:()=>Promise<string>):Promise<void>;awaithello(()=>fetch("/name/get").then((i)=>i.json()));
Pass
declarefunctionhello(getName:()=>Promise<string>):Promise<void>;awaithello(()=>fetch("/name/get").then((i)=>i.json()asPromise<string>));
Additional Info
No response