Ärva från Protractors ElementFinder-typ utan att få TypeScript-varningar
Jag får kompilationsvarningar när jag försöker extend ElementFinder från Protractor i TypeScript.
package.json
"typescript": "^2.0.0-dev.20160707"
"typings": "^1.3.1"
"protractor": "3.3.0"
I mitt projekt har jag installerat typdefinitioner från DefinitelyTyped, och hittills fungerar allt utmärkt.
Men när jag väl importerade ElementFinder-klassen direkt från protractor började den referera till built-katalogens element.d.ts-fil för typinformation. Av någon anledning säger den exporterade typinformationen att allt returnerar en webdriver.Promise, medan källkoden (och till och med dokumentationen i den genererade built/-javascripten!) säger att typen är webdriver.promise.Promise.
Jag får följande kompileringvarningar på denna TypeScript-fil som representerar en datumväljare i vårt komponentbibliotek.
node_modules/protractor/built/element.d.ts(58,31): error TS2305: Module 'webdriver' has no exported member 'Promise'.
node_modules/protractor/built/element.d.ts(60,106): error TS2305: Module 'webdriver' has no exported member 'Promise'.
node_modules/protractor/built/element.d.ts(222,24): error TS2305: Module 'webdriver' has no exported member 'Promise'.
node_modules/protractor/built/element.d.ts(255,36): error TS2305: Module 'webdriver' has no exported member 'Promise'.
node_modules/protractor/built/element.d.ts(280,54): error TS2305: Module 'webdriver' has no exported member 'Promise'.
node_modules/protractor/built/element.d.ts(303,35): error TS2305: Module 'webdriver' has no exported member 'Promise'.
node_modules/protractor/built/element.d.ts(336,37): error TS2305: Module 'webdriver' has no exported member 'Promise'.
node_modules/protractor/built/element.d.ts(368,62): error TS2305: Module 'webdriver' has no exported member 'Promise'.
node_modules/protractor/built/element.d.ts(642,37): error TS2305: Module 'webdriver' has no exported member 'Promise'.
node_modules/protractor/built/protractor.d.ts(96,22): error TS2305: Module 'webdriver' has no exported member 'Promise'.
node_modules/protractor/built/protractor.d.ts(201,57): error TS2305: Module 'webdriver' has no exported member 'Promise'.
node_modules/protractor/built/protractor.d.ts(214,57): error TS2305: Module 'webdriver' has no exported member 'Promise'.
node_modules/protractor/built/protractor.d.ts(221,93): error TS2305: Module 'webdriver' has no exported member 'Promise'.
node_modules/protractor/built/protractor.d.ts(313,41): error TS2305: Module 'webdriver' has no exported member 'Promise'.
node_modules/protractor/built/protractor.d.ts(322,36): error TS2305: Module 'webdriver' has no exported member 'Promise'.
Detta är konstigt eftersom jag ser att mina rxDatePicker-instanser visas med alla metoder och egenskaper hos en ElementFinder, så den genererade javascripten skapas, jag ser bara många varningar.
Kanske finns det ett sätt att ignorera varningarna? Finns det ett sätt att göra det istället?
Svar #1
Om du inte redan har hittat det här är den tillfälliga lösningen:
I package.json, säkerställ att denna rad är på 2.44.* "@types/selenium-webdriver": "2.44.*",