したがって、Angular 2とTypescriptを使用しているメンバーのプロパティがどのように設定されているか混乱しているイオン2プロジェクトを見ています。以下の例を見ると、Angularは自動的にコンストラクタ引数の依存関係を挿入します。 navの場合、インスタンスメンバーnavをコンストラクタによって渡されているものに明示的に設定しています。 Firebase認証の場合、明示的にメンバー変数に設定するのではありませんが、ログインメソッドでthis.auth
経由で引き続きアクセスできます。 this.nav
で同じことを試しても、インスタンス変数を明示的に設定しない限りうまくいきません。 private
キーワードをコンストラクタパラメータdoで使用すると、クラスのプロパティ定義と関数パラメータでプライベートキーワードを宣言するのは冗長ですか?それらが同じ名前を持っていれば、それは魔法のようにコンストラクタ変数をクラスプロパティにバインドしていますか?角度2のタイプスクリプトのメンバープロパティとコンストラクタの構文
export class LoginPage {
nav:NavController;
private auth: FirebaseAuth;
constructor(nav:NavController, private auth: FirebaseAuth) {
this.nav = nav; // if we don't do this, the setRoot below in login doesn't do anything
//this.auth = auth; // how come we don't have to set the member variable here and it's still available in the login method
}
login() {
this.auth.login().then(authData =>{
this.nav.setRoot(TabsPage);
});
}
}
見る[ここでの説明](https://www.stevefenton.co.uk/2013/04/stop-manually-assigning-typescript-constructor-parameters/) – drewmoore