From faf255a762c64fe582ab5c690f02071aa513c3d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Konstantin=20Simon=20Maria=20M=C3=B6llers?= Date: Wed, 20 Jun 2018 09:02:38 +0200 Subject: [PATCH] [puppeteer] Add $ExpectType annotations --- types/puppeteer/puppeteer-tests.ts | 41 ++++++++++++++++++++++-------- 1 file changed, 31 insertions(+), 10 deletions(-) diff --git a/types/puppeteer/puppeteer-tests.ts b/types/puppeteer/puppeteer-tests.ts index baf573ebd2..96cb4fd361 100644 --- a/types/puppeteer/puppeteer-tests.ts +++ b/types/puppeteer/puppeteer-tests.ts @@ -275,16 +275,29 @@ puppeteer.launch().then(async browser => { const browser = await puppeteer.launch(); const page = await browser.newPage(); await page.goto("https://example.com"); - const elementText = await page.$eval('#someElement', (element) => { - return element.innerHTML; - }); + const elementText = await page.$eval( + '#someElement', + ( + element, // $ExpectType Element + ) => { + element.innerHTML; // $ExpectType string + return element.innerHTML; + } + ); + elementText; // $ExpectType string // If one returns a DOM reference, puppeteer will wrap an ElementHandle instead - const someElement: puppeteer.ElementHandle = await page.$$eval('.someClassName', (elements) => { - console.log(elements.length); - console.log(elements[0].outerHTML); - return elements[3] as HTMLDivElement; - }); + const someElement = await page.$$eval( + '.someClassName', + ( + elements, // $ExpectType Element[] + ) => { + console.log(elements.length); + console.log(elements[0].outerHTML); + return elements[3] as HTMLDivElement; + } + ); + someElement; // $ExpectType ElementHandle // If one passes an ElementHandle, puppeteer will unwrap its DOM reference instead await page.$eval('.hello-world', (e, x1: HTMLDivElement) => x1.noWrap, someElement); @@ -372,6 +385,14 @@ puppeteer.launch().then(async browser => { (async () => { const browser = await puppeteer.launch(); const page = await browser.newPage(); - const eh: puppeteer.ElementHandle = (await page.$('tr.something'))!; - const index: number = await page.$eval('.demo', (e, x1) => x1.rowIndex, eh); + const eh = await page.$('tr.something') as puppeteer.ElementHandle; + const index = await page.$eval( + '.demo', + ( + e, // $ExpectType Element + x1, // $ExpectType HTMLTableRowElement + ) => x1.rowIndex, + eh, + ); + index; // $ExpectType number });