クラスを実装するとき、実装されているメンバーはコンストラクタ内では使用できないことがわかりました。私はそれを間違って実装しているのか、本当に別のアプローチを取っているのかは分かりません。コンストラクタ(typescript)で実装されたメンバーを使用する
abstract class Parent {
abstract myVar: number;
constructor() {
console.log(this.myVar) // Outputs undefined
}
f() {
console.log(this.myVar) // outputs 5
}
}
class Child extends Parent {
myVar: number = 5;
}
let myChild = new Child;
myChild.f();
コンストラクタ内のこれらの実装されたメンバーにアクセスするにはどうすればよいですか?
をコンストラクタから仮想メソッドを呼び出すのない大ファン。派生クラスは基本クラス・メソッドを呼び出すことがあり、基本クラスはまだ部分的に初期化された状態にあるため、動作は未定義です。 –
@ RyanCavanaughほとんどの場合、あなたは正しいですが、避けるのが難しい場合もあります。いずれにしても、私はここで事態の順序を説明しました。 –