打字稿错误预期有0个参数,但在Ionic Framework中有2个参数

dda*_*ero 6 cordova typescript ionic-framework angular

打字稿编译器给我这个错误

打字稿:src / pages / login / login.ts,第33行:应为0个参数,但得到2个。L32:this.auth.loginAPI(this.registerCredentials)L33:.subscribe(response => {

使用此代码(2个文件):

// auth-provider.ts
public loginAPI(credentials: {email:string,password:string}) {
  return this.http.post(this.apiUrl,data);
}

// login.ts
this.auth.loginAPI(this.registerCredentials)
  .subscribe(response => { 
    console.log(response);
  }, err => {
    console.log(err);
  });
Run Code Online (Sandbox Code Playgroud)

有趣的是,代码可以正常工作(我编辑任何文件,重新加载离子服务,页面呈现都没有问题)。

任何的想法?

环境cli软件包:(/ usr / local / lib / node_modules)

@ionic/cli-utils  : 1.19.0
ionic (Ionic CLI) : 3.19.0
Run Code Online (Sandbox Code Playgroud)

全局软件包:

cordova (Cordova CLI) : 7.0.1
Run Code Online (Sandbox Code Playgroud)

本地套餐:

@ionic/app-scripts : 3.1.5
Cordova Platforms  : ios 4.4.0
Ionic Framework    : ionic-angular 3.9.2
Run Code Online (Sandbox Code Playgroud)

系统:

Node  : v8.9.3
npm   : 5.5.1
OS    : macOS High Sierra
Xcode : Xcode 9.2 Build version 9C40b
Run Code Online (Sandbox Code Playgroud)

dda*_*ero 6

问题出在loginAPI函数定义上。将返回类型添加到Observable <any>使编译器满意并解决了该问题。

// auth-provider.ts
public loginAPI(credentials: {email:string,password:string}):Observable<any> {
  return this.http.post(this.apiUrl,data);
}
Run Code Online (Sandbox Code Playgroud)

仍然我不太清楚为什么,但是至少现在编译时没有任何错误。