TypeScript Version: 3.7.2
Search Terms: try catch finally return
Code
const main = () => {
let hoge: string | undefined = undefined;
try {
hoge = 'hoge!';
return; // Bug disappears after removing this return.
} catch {
return; // Bug disappears after removing this return.
} finally {
if (hoge) {
hoge.length;
}
return;
}
}
main();
Expected behavior:
In finally block, hoge's type is string | undefined
Actual behavior:
In finally block, hoge's type is only undefined, and Property 'length' does not exist on type 'never'. error occured.
Playgroung Link
Related Issues: