的訪問說我有代碼打字稿:訪問外部`this`在對象文本字段
class A {
a = 1;
o = {
get b() {
return this.a; //<--
}
}
}
的this
指出,實際上是指o
而我真的想訪問的A
實例。
這是我想要的格式嗎? (如果沒有創建一個函數和別名)
的訪問說我有代碼打字稿:訪問外部`this`在對象文本字段
class A {
a = 1;
o = {
get b() {
return this.a; //<--
}
}
}
的this
指出,實際上是指o
而我真的想訪問的A
實例。
這是我想要的格式嗎? (如果沒有創建一個函數和別名)
我認爲這是將最終給你相同的API,但你必須打破了類來完成它:
class o {
constructor(private owner: t) {}
get b() { return this.owner.a; }
}
class t {
a = 1
o = new o(this)
}
我喜歡OO的方法:) –
它不流利,但它完成了工作;) – Catalyst
這不是有效的類語法開始用。在ES2015中,您只能定義類方法,而不是像這樣的屬性。所有的屬性都必須在構造函數中初始化(ES.Next提出了一個「靜態」可變槽,但這是一個不同的故事)。 – nils
我不確定你的意思是「*沒有創建函數*」。你想要一個吸氣劑,對吧? – Bergi
@nils是的,它實際上是TypeScript。我已經確定了標題。我想這可能是在TypeScript中定義屬性的方式的限制。 @bergi我的意思是沒有在函數範圍中包裝對象字面值以便別名this。 –