Closed
Description
Bug Report
🔎 Search Terms
TS2534 await
🕗 Version & Regression Information
- This is the behavior in every version I tried, and I couldn't find any related FAQ entries.
Versions tried on:
- 4.6.4 (local)
- Nightly = 4.8.0-dev.20220714) (playground)
⏯ Playground Link
💻 Code
function makeDetonator(): Promise<never> {
return Promise.reject(new Error("Boom!"));
}
function detonate1(): Promise<never> {
const detonatorPromise = makeDetonator();
return detonatorPromise;
}
async function detonate2(): Promise<never> {
const detonatorPromise = makeDetonator();
await detonatorPromise;
}
🙁 Actual behavior
detonate1 has no issues, but get the following error for detonate2:
A function returning 'never' cannot have a reachable end point.
🙂 Expected behavior
detonate2 is semantically equivalent to detonate1, and there should be no such error.
It looks like the general rule that's missing is: awaiting on a Promise would make the rest of the block unreachable.
Metadata
Metadata
Assignees
Labels
No labels