打字稿错误,找不到名称'gapi',转换失败

iva*_*esi 3 typescript ionic-framework google-oauth2 ionic2 typescript2.0

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

npm install --save @types/gapi
npm install --save @types/gapi.auth2
Run Code Online (Sandbox Code Playgroud)

有两个警告:

npm WARN可选SKIPPING OPTIONAL DEPENDENCY:fsevents@^1.0.0(node_modules\chokidar \node_modules\fsevents):

npm WARN notsup SKIPPING OPTIONAL DEPENDENCY:不支持的fsevents@1.0.15平台:想要{"os":"darwin","arch":"any"}(当前:{"os":"win32","arch": "64"})

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

我安装了

npm install typings -g
typings install dt~gapi --global --save
typings install dt~gapi.auth2 --global --save
Run Code Online (Sandbox Code Playgroud)

还是有同样的错误:找不到名字'gapi',transile失败了

我的代码:

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'
          });
        });
      };
Run Code Online (Sandbox Code Playgroud)

我的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"
Run Code Online (Sandbox Code Playgroud)

Dan*_*ser 5

当前的声明forgapiforgapi.auth2声明是全局声明.

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

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

"compilerOptions": {
     "types": ["gapi", "gapi.auth2"]
}
Run Code Online (Sandbox Code Playgroud)

  • 谢谢,为我工作!请注意,在较新版本的 angular-cli 上,这些编辑的正确文件可能是 tsconfig.app.json (3认同)