【问题标题】:Typescript Error, Cannot find name 'gapi', transpile failed打字稿错误,找不到名称“gapi”,转译失败
【发布时间】:2017-05-15 22:52:37
【问题描述】:

我试图在我的 ionic2 应用中实现 google auth。我需要它在浏览器中工作。所以,我安装了:

npm install --save @types/gapi
npm install --save @types/gapi.auth2

有两个警告:

npm WARN 可选跳过可选依赖:fsevents@^1.0.0 (node_modules\chokidar\node_modules\fsevents):

npm 警告 notsup 跳过可选依赖:不支持的平台 fsevents@1.0.15:想要 {"os":"darwin","arch":"any"}(当前: {"os":"win32","arch":"x64"})

在 node_modules 文件夹中,我有 gapi 和 gapi.auth2 文件夹,但我有打字稿错误:找不到名称 'gapi',转译失败。

我安装了

npm install typings -g
typings install dt~gapi --global --save
typings install dt~gapi.auth2 --global --save

仍然有同样的错误:找不到名称“gapi”,转译失败

我的代码:

auth2: any;

login() {
      gapi.load('auth2', () => {
          this.auth2 = gapi.auth2.init({
             client_id: 'xxxxxxxxx.apps.googleusercontent.com',
             scope: 'https://www.googleapis.com/auth/userinfo.email'
          });
        });
      };

我的 package.json:

"@angular/core": "2.2.1",
"ionic-angular": "2.0.0-rc.4",
"ionic-native": "2.2.11",
"rxjs": "5.0.0-beta.12",
"typescript": "2.0.9"

【问题讨论】:

    标签: typescript ionic-framework ionic2 google-oauth typescript2.0


    【解决方案1】:

    The current declarations for gapifor gapi.auth2 是全局声明。

    它们可能不会自动使用@types,因为查看node_modules 要么需要显式的import,要么将您的库添加到tsconfig.json 中的types 字段。

    因此,请尝试将以下 types 字段修复为您的 compilerOptions

    "compilerOptions": {
         "types": ["gapi", "gapi.auth2"]
    }
    

    【讨论】:

    • 谢谢,为我工作!请注意,在较新版本的 angular-cli 上,这些编辑的正确文件可能是 tsconfig.app.json
    猜你喜欢
    • 1970-01-01
    • 2017-06-18
    • 1970-01-01
    • 2023-03-17
    • 2017-12-01
    • 1970-01-01
    • 2019-04-30
    • 2018-11-09
    • 1970-01-01
    相关资源
    最近更新 更多