从TypeScript 1.6开始,我们可以使用类表达式轻松创建内部类.在像Java这样的其他以OOP为中心的语言中,内部类可以访问外部类的成员,甚至是私有成员.
此行为类似于闭包的概念,其中函数可以从定义它的作用域中访问变量.
为什么我无法在TypeScript中实现这一点?ECMAScript 2015中的类规范是否起作用?
显示预期行为的代码:
class OuterClass {
private outerField = 1337;
public InnerClass = class {
public accessOuter() {
return this.outerField; // outerField not defined
}
}
}
var outer = new OuterClass();
var inner = new outer.InnerClass();
var win = inner.accessOuter();
Run Code Online (Sandbox Code Playgroud)