Skip to main content

await-thenable

Disallow awaiting a value that is not a Thenable.

💭

This rule requires type information to run.

A "Thenable" value is an object which has a then method, such as a Promise. The await keyword is generally used to retrieve the result of calling a Thenable's then method.

If the await keyword is used on a value that is not a Thenable, the value is directly resolved immediately. While doing so is valid JavaScript, it is often a programmer error, such as forgetting to add parenthesis to call a function that returns a Promise.

.eslintrc.cjs
module.exports = {
"rules": {
"@typescript-eslint/await-thenable": "error"
}
};
Try this rule in the playground ↗

Examples

await 'value';

const createValue = () => 'value';
await createValue();

Options

This rule is not configurable.

When Not To Use It

If you want to allow code to await non-Promise values. This is generally not preferred, but can sometimes be useful for visual consistency.

Resources