2016-04-29 9 views
1

私はAngular 2とtypescriptを使って立ち上げようとしています。これまでのところとても良いですが、私はFacebookログインメッセージを動作させるためにいくつかの問題を抱えています。私はプロジェクトon github that demonstrated how this can be doneを見つけました。フェイスブックログインでAngular 2プロジェクトで作業するためのタイスクリプトを取得する

error TS2339: Property fbAsyncInit does not exist on type 'Window'. 
error TS2304: Cannot find name 'FB'. 

これは時に理にかなっています。この例では、彼らは次のコネクタがあります。私は私のtypescriptですをコンパイルしていたときに

fbconnector.ts

export class FBConnector { 

    constructor(appID: string) { 
     if (!window.fbAsyncInit) { 
      console.log('define'); 
      window.fbAsyncInit = function() { 
       FB.init({ 
        appId: appID, 
        xfbml: true, 
        version: 'v2.5' 
       }); 
      }; 
     } 
    } 

    initFB() { 
     var js: any, 
      id = 'facebook-jssdk', 
      ref = document.getElementsByTagName('script')[0]; 

     if (document.getElementById(id)) { 
      return; 
     } 

     js = document.createElement('script'); 
     js.id = id; 
     js.async = true; 
     js.src = "//connect.facebook.net/en_US/sdk.js"; 

     ref.parentNode.insertBefore(js, ref); 
    } 

} 

をこれには、次の2つのエラーが発生しますあなたはそれについて考えます、typescriptはこれらの変数を定義する必要があります。これは部分的には私がtypescriptに慣れていないためだと思いますが、これをどうやってやるべきか正確には分かりません。カスタム入力ファイルを作成する必要がありますか?または回避策を使用する必要がありますか? (例えば、ウィンドウの前に追加するなど)

ありがとうございます!

答えて

1

最終的に答えを見つけた、DefinitelyTypedはFacebook Javascript SDK(over here)の型定義を持っています。

/// <reference path="../../../typings/main/ambient/fbsdk/index.d.ts" />

+0

あなたが与えることができます上のコードを追加したファイルの上にいくつかの詳細がありますか? –

+0

添付リンクが死んでいます – Vivek

0

あなたがでタイピングをインストールすることができます:

私がしなければならなかったすべては私のファイルの先頭に以下の行でそれをファイルと参照を追加しましたtypings install -SG dt~fbsdk

+1

上記のような入力をインストールしましたが、実際にはサブライム3ではエラーを強調表示しません。ただし、サーバーは同じエラーをスローし続けます "プロパティ 'fbAsyncInit'は 'Window'型には存在しません。 –