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 回答