Closed
Description
TypeScript Version: 3.1.3
Search Terms: try finally block
Code
async function test(): Promise<string> {
let browser: puppeteer.Browser | undefined = undefined;
let page: puppeteer.Page | undefined = undefined;
try {
browser = await test1();
page = await test2(browser);
return await page.content();;
} finally {
if (page) {
await page.close();
}
if (browser) {
await browser.close();
}
}
}
async function test1(): Promise<puppeteer.Browser> {
return await puppeteer.launch();
}
async function test2(browser: puppeteer.Browser): Promise<puppeteer.Page> {
return await browser.newPage();
}
Expected behavior:
page and browser can be of type puppeteer.Page and puppeteer.Browser
Actual behavior:
compile error message:
error TS2339: Property 'close' does not exist on type 'never'.
Related Issues:
#11665(The different is current issue's code contains a return in try block)