从下面的Java代码开始。什么是ParentClass.this.a
的TypeScript等效项
class ParentClass{
int a = 1;
class ChildrenClass{
int b = 2;
void run(){
this.b = ParentClass.this.a;
}
}
}
我的目标是在回调函数内部访问父变量。
最佳答案
在typescript / javascript中没有这样的概念。实际上,您不能仅在一个类(即嵌套类)中定义一个类,以上语法不是有效的打字稿。
最接近的方法是使用声明合并来合并名称空间和类,以在父类作用域中获取嵌套类,并在父类实例中进行传递:
class ParentClass {
a = 1;
childClass: ParentClass.ChildrenClass;
constructor() {
this.childClass = new ParentClass.ChildrenClass(this);
}
}
namespace ParentClass {
export class ChildrenClass {
constructor(private parentClassThis: ParentClass){}
b = 2;
run(): void {
this.b = this.parentClassThis.a;
}
}
}