2016-12-29 10 views
0

私は現在ionic2アプリケーションをやっています。 これで、facebook Accountkit.login(type、params、callbackFn)を呼び出す必要があります。 私はObservableリターンをしたいと思います。 Following the docs私は:observable.bindcallbackで署名が不一致

let obs = Observable.bindCallback(AccountKit.login); // it's ok ! 
    return obs(type, params)       // <---- error: signature mismatch 
     .map(response => this.loginCallback(response)); 

はtypescriptですの問題のようです、私は、任意の実用的な解決策を見つけることができませんでした。

答えて

2

bindCallback

let obs = Observable.bindCallback<YourTypeOfType, YourTypeOfParams, YourTypeOfResponse>(AccountKit.login); 

あなたをキャストしてみ当然の対応するタイプ(私はstringを推測している?)とクイックトライアウトとしてTypeOfParamsTypeOfResponse

と同じでYourTypeOfTypeを交換する必要があります

let obs = Observable.bindCallback<any, any, any>(AccountKit.login); 
+0

それぞれにanyを使用することもできます完璧な作品です! – AnM

+0

私はこれを見つけたことはありませんでした!たぶん私はタイスクリプトの特定のトピックについて学ぶべきでしょうか? – AnM

+0

"type mismatch"または "signature mismatch"は、フレームワークによって提供されるいくつかのデフォルト型に関連することがよくあります。この場合、 'bindCallback'のデフォルト型は、提供されたメソッドの1つのパラメータ(' login')この場合、正しいタイプシグネチャを明示する必要があります。 Typescript 2.1ではコンパイラが自動的に検出できるようになっていますが、開発者はこれ以上のことを心配する必要はありませんが、すべてのフレームワークに実装されるまでに時間がかかることがあります。 – olsn

関連する問題