Dedičenie z typu ElementFinder z Protractora bez získania varovaní TypeScriptu


Pri pokuse o rozšírenie ElementFinder z Protractora v TypeScripte dostávam varovania pri kompilácii.

package.json

"typescript": "^2.0.0-dev.20160707"
"typings": "^1.3.1"
"protractor": "3.3.0"

Vo svojom projekte som nainštaloval definície typov z definitely typed, a zatiaľ všetko funguje skvelo.

Avšak, keď som priamo importoval triedu ElementFinder z protractora, začala odkazovať na súbor element.d.ts v adresári built pre informácie o typoch. Z nejakého dôvodu exportované informácie o typoch hovoria, že všetko vracia webdriver.Promise, keď zdrojový kód (a dokonca aj dokumentácia vo vygenerovanom javaskripte v built/!) hovorí, že typ je webdriver.promise.Promise.

Dostávam nasledujúce varovania pri kompilácii v tomto TypeScript súbore, ktorý predstavuje výber dátumu v našej knižnici komponentov.

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'.

To je zvláštne, pretože vidím, že moje inštancie rxDatePicker sa zobrazujú so všetkými metódami a vlastnosťami ElementFinder, takže generovaný JavaScript je vytváraný, len vidím veľa upozornení.

Možno existuje spôsob, ako ignorovať varovania? Existuje spôsob, ako to urobiť namiesto toho?

Odpoveď č. 1

Ak ste to ešte nenašli, toto je dočasné riešenie:

V súbore package.json sa uistite, že tento riadok je na 2.44.* "@types/selenium-webdriver": "2.44.*",