1

TypeScript と Firebase を併用しています。

私のクラスにはfireybase: FirebaseInterface;プロパティがあります。

を使用して初期化するとthis.fireybase = new Firebase('URL/');

オブジェクトに関するコンパイル時エラーが発生しFirebaseます。

The name 'Firebase' does not exist in the current scope

interface FirebaseInterface {
    set(s:string): any;
}

ライブラリに Firebase インターフェイスを追加しようとしましたが、それでも気に入りません。

TypeScriptでこれを行うための最良のアプローチは何ですか?

4

2 に答える 2

4

typescript コンパイラは、型を見つけることができないため、Firebaseそれを導入する必要があることを通知します。あなたの場合、firebase ライブラリのプロバイダーが Typescript での開発をサポートしたい場合は、型Firebase(および依存型) を指定する宣言ファイルを提供する必要があります。あなたの場合、単純なFirebase.d.tsファイルは次のようになります。

Firebase.d.ts

declare class Firebase {    
    constructor(u:string);    
    set(s:string): any;
}

次に、次のように参照宣言を使用して、宣言ファイルをスコープに入れる必要があります。

MyApp.ts

///<reference path='firebase.d.ts'/>
class MyApp {  
    fireybase: Firebase;  
    constructor () => {
        this.fireybase = new Firebase('URL/');
    }
}

宣言ファイルと参照パスの詳細については、言語仕様を参照してください。

于 2012-10-15T18:28:03.737 に答える
1

Firebase の静的定義を含むモジュールへの参照が必要だと思います。おそらく、ファイルの先頭で次のステートメントを使用することで簡単に修正できます。

declare var Firebase: any;

于 2012-10-15T17:15:45.280 に答える