typescript编译器给我这个错误
typescript: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);
});
有趣的是代码可以工作(我编辑任何文件,我的离子服务重新加载,页面渲染没有任何问题)。
有什么想法吗?
环境 cli包:(/ usr / local / lib / node_modules)
@ionic/cli-utils : 1.19.0
ionic (Ionic CLI) : 3.19.0
全球套餐:
cordova (Cordova CLI) : 7.0.1
本地包裹:
@ionic/app-scripts : 3.1.5
Cordova Platforms : ios 4.4.0
Ionic Framework : ionic-angular 3.9.2
系统:
Node : v8.9.3
npm : 5.5.1
OS : macOS High Sierra
Xcode : Xcode 9.2 Build version 9C40b
答案 0 :(得分:6)
问题在于loginAPI函数定义。 将返回类型添加到Observable< any>让编译器高兴并解决了这个问题。
// auth-provider.ts
public loginAPI(credentials: {email:string,password:string}):Observable<any> {
return this.http.post(this.apiUrl,data);
}
我仍然不太了解为什么,但至少现在它编译没有任何错误。
答案 1 :(得分:1)
为了处理这个问题,你可以创建一个类,如下所示,
public class credentials export {
email : string;
password: string;
}
然后,
public loginAPI(inCredentials : credentials ) {
return this.http.post(this.apiUrl,data);
}