Closed
Description
Before You File a Bug Report Please Confirm You Have Done The Following...
- I have tried restarting my IDE and the issue persists.
- I have updated to the latest version of the packages.
- I have searched for related issues and found none that matched my issue.
- I have read the FAQ and my problem is not listed.
Playground Link
Repro Code
async function wrapper<T>(value: T) {
return await value;
}
ESLint Config
module.exports = {
"rules": {
"@typescript-eslint/await-thenable": "error"
}
}
tsconfig
Expected Result
The await value
shouldn't be reported on. We don't know that T
is or isn't a Promise/Thenable. I'd like to be able to use the await
just in case it is.
Actual Result
On the await value
:
Unexpected `await` of a non-Promise (non-"Thenable") value.
Additional Info
For a slightly more realistic reproduction, consider a function that await
s the result of calling a function for a generic value:
type GetSomething<T> = (timestamp: number) => T;
async function wrapper<T>(getter: GetSomething<T>) {
const timestamp = performance.now();
// I'd like to await in here to preserve the call stack
return await getter(timestamp);
}
Somewhat related: #8301, where it was noted that the rule intentionally ignores any
and unknown
values because there's no guarantee they aren't a Promise.
💖