的访问说我有代码打字稿:访问外部`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。 –