打字稿找不到名称'Firebase'

时间:2016-05-30 16:16:33

标签: typescript angular firebase

我在尝试构建包含angularfire2和firebase的项目时遇到了typescript错误。以下是包裹:

"angularfire2": "^2.0.0-beta.0",
"firebase": "^2.4.2",

以下是错误:

[10:58:34] Finished 'build.html_css' after 4.51 s
[10:58:34] Starting 'build.js.dev'...
c:/Dev/daybreak/node_modules/angularfire2/database/database.d.ts(8,29): error TS2304: Cannot find name 'Firebase'.
c:/Dev/daybreak/node_modules/angularfire2/database/database.d.ts(9,31): error TS2304: Cannot find name 'Firebase'.
c:/Dev/daybreak/node_modules/angularfire2/providers/auth.d.ts(10,25): error TS2304: Cannot find name 'FirebaseCredentials'.
c:/Dev/daybreak/node_modules/angularfire2/providers/auth.d.ts(13,16): error TS2304: Cannot find name 'FirebaseAuthData'.
c:/Dev/daybreak/node_modules/angularfire2/providers/auth.d.ts(14,29): error TS2304: Cannot find name 'FirebaseCredentials'.
c:/Dev/daybreak/node_modules/angularfire2/providers/auth.d.ts(14,59): error TS2304: Cannot find name 'FirebaseAuthData'.
c:/Dev/daybreak/node_modules/angularfire2/providers/auth_backend.d.ts(4,44): error TS2304: Cannot find name 'FirebaseCredentials'.
c:/Dev/daybreak/node_modules/angularfire2/providers/auth_backend.d.ts(8,44): error TS2304: Cannot find name 'FirebaseAuthData'.
c:/Dev/daybreak/node_modules/angularfire2/providers/auth_backend.d.ts(9,25): error TS2304: Cannot find name 'FirebaseAuthData'.
c:/Dev/daybreak/node_modules/angularfire2/providers/auth_backend.d.ts(11,38): error TS2304: Cannot find name 'FirebaseCredentials'.

如果我在node_modules中打开database.d.ts,则没有'Firebase'的导入,所以我可以看到为什么会失败..它希望从哪里获得'Firebase'?

import { FirebaseListObservable } from '../utils/firebase_list_observable';
import { FirebaseObjectObservable } from '../utils/firebase_object_observable';
import { FirebaseListFactoryOpts } from '../utils/firebase_list_factory';
import { FirebaseObjectFactoryOpts } from '../utils/firebase_object_factory';
export declare class FirebaseDatabase {
    private fbUrl;
    constructor(fbUrl: string);
    list(urlOrRef: string | Firebase, opts?: FirebaseListFactoryOpts): FirebaseListObservable<any[]>;
    object(urlOrRef: string | Firebase, opts?: FirebaseObjectFactoryOpts): FirebaseObjectObservable<any>;
}

我不明白为什么它甚至会检查node_modules中的输入...这是我在tsconfig.json中排除的一部分

{
  "compilerOptions": {
    "target": "es5",
    "module": "commonjs",
    "declaration": false,
    "removeComments": true,
    "noLib": false,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "sourceMap": true,
    "pretty": true,
    "allowUnreachableCode": false,
    "allowUnusedLabels": false,
    "noImplicitAny": true,
    "noImplicitReturns": true,
    "noImplicitUseStrict": false,
    "noFallthroughCasesInSwitch": true
  },
  "exclude": [
    "node_modules",
    "dist",
    "typings/browser.d.ts",
    "typings/browser",
    "src"
  ],
  "compileOnSave": false
}

2 个答案:

答案 0 :(得分:0)

将此添加到.ts您的文件==&gt;从&#39; angularfire2&#39;中导入{AngularFire,FirebaseListObservable};

答案 1 :(得分:-3)

它的核心似乎是你没有安装基础Firebase类型。

任何Firebase API的根类都是Firebase类。所以最有可能的是,它有一些东西说:ref<Firebase>就像“WOAH,这是什么'Firebase'的东西?”

结帐install guide for AngularFire2

  

第3步:

     

npm install typings -g

     

typings install --save --ambient firebase