我正在尝试使用angularfire构建一个ng2应用程序。在快速入门之后,我收到以下错误:
cannot find namespace 'firebase'
似乎是打字的东西,但安装了所有这些。有关这个问题的任何想法?
答案 0 :(得分:6)
如果您有一个全新的角度2.0 CLI项目 - 这将有效 - 我不知道您的特定设置:
tsconfig.json
看起来像这样:“compilerOptions”: {
"declaration": false,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"lib": ["es6", "dom"],
"mapRoot": "./",
"module": "es6",
"moduleResolution": "node",
"outDir": "../dist/out-tsc",
"sourceMap": true,
"target": "es5",
"typeRoots": [
"../node_modules/@types" /// - here - types are pointing to this @types folder inside node_modules.
]
}
@types
的{{1}}内创建一个新文件夹。firebase
中创建一个新文件,将其命名为firebase
index.d.ts
看起来向Angular 2.0 CLI项目添加输入的推荐方法是将它们添加到node_modules / @ types文件夹中。正如您所看到的那样,jasmine typing的文件夹看起来很相似 - 并且是由CLI自动添加的脚手架。
答案 1 :(得分:2)
答案 2 :(得分:1)
似乎已经报告了bug并且(希望)正在处理。在这里查看:
https://github.com/angular/angularfire2/issues/461
有些人成功修改typings.json(删除依赖于firebase)或安装了@next版本的typescript。就个人而言,我目前仍然遇到同样的错误。
我希望这个bug最终得到修复(很快;))
编辑:似乎' bug'是几个依赖的组合,必须是正确的。最后,我将PATH
变量设置为指向tsc
下的旧Program Files
安装。出于某种原因,使用的是代替节点包typescript
中的(首选的)。
答案 3 :(得分:1)
尝试在导入
下添加此行 declare let firebase: any; // <== THERE IS AN ERROR IN THE .d.ts file
即
import { AngularFireModule } from 'angularfire2';
declare let firebase: any; // <== THERE IS AN ERROR IN THE .d.ts file
当你将vanilla js添加到打字稿时,你会这样做,它基本上是对打字稿说&#39;火力&#39;变量存在,即使你现在没有看到它,它应该有希望删除错误,如果它让我知道。
答案 4 :(得分:0)
解决方案:
<when expression="message.inboundProperties.role == "backoffice""> <apikit:router config-ref="backoffice-config" doc:name="Backoffice APIKit Router"/></when> ...
原因:
Firebase引入了一些AngularFire2尚未应对的突破性变化。在AngularFire2团队解决之前,这将是解决方案。
添加竖起大拇指的表情符号,并指导任何有同样问题的人!会节省很多时间!