this
は、この方法では使用できません。あなたが望むものを達成するためのコードを提案しましょう。
class A {
get projections() {
// ...
let result = {}; // <-- your return object
return (<T>(obj: T): { [id: string]: T } => result)(this);
}
}
class B extends A {}
new B().projections // => { [id: string]: B }
私は無名関数を使用するために好きではないと思いますが、これは、私はあなたの結果を得るために見つける方法でした。
あなたは、コードを読みやすくするためにA
にプライベートヘルプ機能を作成することができます。
class A {
private applyResult<T>(obj: T, result: { [id: string]: T }) {
return result;
}
get projections() {
// ...
let result = {}; // <-- your return object
return this.applyResult(this, result);
}
}
class B extends A {}
new B().projections // => { [id: string]: B }
私は、これはいくつかの方法で役立ちます願っています。
'this'はクラス自体ではなく、オブジェクトの特定のインスタンスを指します。それがうまくいかない理由です。 –