2017-02-21 5 views
1

私はこの方法を持っている:WebDriverを元の約束に変える?

isOnPage(): Promise<boolean> { 
    return this.subtitle.isPresent(); 
} 

typescriptですコンパイラは、このエラーを与える:

Type 'webdriver.promise.Promise<boolean>' is not assignable to type 'Promise<boolean>' 

は、ネイティブの約束にwebdriverをする約束を変換する方法はありますか?

これは機能しますか?

isOnPage(): Promise<boolean> { 
    return new Promise(() => { 
    return this.subtitle.isPresent(); 
    }); 
} 
+2

'webdriver.promise.Promise'がネイティブ' Promise'とは​​異なるタイプであるため、正しいアドバイスが表示されます。 – AntonB

+0

なぜあなたは本来の約束に変換する必要がありますか? – Gunderson

+0

プロジェクトに複数の約束の実装があると、チームは混乱します。 –

答えて

2

戻り値の型を宣言することはできません。これはまだあなたの戻り値

isOnPage() { 
    return this.subtitle.isPresent(); 
} 
+0

これはベストプラクティスですか?まともなアイデアのようだ。 –

+3

このソリューションの大きなファンではありません。宣言された戻り値の型にかかわらず、引き続き返される戻り値の型は同じです。理論的には、契約が異なるため、ES6の「Promise」のように動作することを期待すれば、問題に遭遇する可能性があります。 –

+1

返す型を明示的に指定する方が良いと思います。私は動作するコードの例に感謝します! – Xotabu4

0
import { promise } from 'selenium-webdriver'; 

... 

isOnPage(): promise.Promise<boolean> { 
    return this.subtitle.isPresent(); 
} 
関連する問題