2017-12-15 7 views
2

はtypescriptですコンパイラは私にこのエラーこのコード(2つのファイル)で活字エラーが0の引数を期待しますが、イオンFrameworkの2

typescript: src/pages/login/login.ts, line: 33 Expected 0 arguments, but got 2. L32: this.auth.loginAPI(this.registerCredentials) L33: .subscribe(response => {

を与えてしまった:

// 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); 
    }); 

面白いことということですコードが動作する(私はファイルを編集する、私のionic serve reloadとページレンダリングは問題なし)。

環境 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

説明のために、同じコンパイラエラーが発生するたびに、2つの別々のパラメータ、つまりクラスをテストするための1つのパラメータだけを渡してみました。 SublimeTextでもエラーが強調表示されます。つまり、別の方法でそれを行う必要があるのでしょうか? – ddalcero

+0

コンパイラによって報告される問題は、.subscribeであり、loginAPIに渡される資格情報ではありません。私はそれをより明確にするために質問を編集しています。 – ddalcero

答えて

1

問題がloginAPI関数の定義です。 Observable <に戻り型を追加すると、>はコンパイラを幸せにして問題を解決しました。

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

まだ私は非常によく理解できませんが、少なくとも今はエラーなしでコンパイルします。

1

次のようにクラスを作成することができ、これをハンドラにためには、

public class credentials export { 
    email : string; 
    password: string; 
} 

、その後、

public loginAPI(inCredentials : credentials) { 
    return this.http.post(this.apiUrl,data); 
} 
+0

2つの別々のパラメータを持つ配列でクラスを試してみましょう...毎回同じエラーが発生します。 – ddalcero

+0

配列ではどういう意味ですか? – Sajeetharan

+0

私は配列を最初の投稿({email:string、password:string})に渡すオブジェクトと呼んでいます。 – ddalcero

関連する問題