我一起使用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中执行此操作的最佳方法是什么?
答案 0 :(得分: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/');
}
}
您可以在language specification中了解有关声明文件和参考路径的更多信息。
答案 1 :(得分:1)
我认为您需要对包含Firebase静态定义的模块的引用。也许快速解决方法是在文件顶部使用以下语句:
declare var Firebase: any;