你可以在 TypeScript 中创建嵌套类吗?

新手上路,请多包涵

有没有办法在 TypeScript 中嵌套类。例如,我想像这样使用它们:

 var foo = new Foo();
var bar = new Foo.Bar();

原文由 basarat 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 2k
2 个回答

在现代 TypeScript 中,我们有可以用来创建嵌套类的类表达式。例如,您可以执行以下操作:

 class Foo {
    static Bar = class {

    }
}

// works!
var foo = new Foo();
var bar = new Foo.Bar();

原文由 basarat 发布,翻译遵循 CC BY-SA 4.0 许可协议

这是一个使用 类表达式 的更复杂的用例。

它允许 内部类 访问 private 外部类的成员。

 class classX {
    private y: number = 0;

    public getY(): number { return this.y; }

    public utilities = new class {
        constructor(public superThis: classX) {
        }
        public testSetOuterPrivate(target: number) {
            this.superThis.y = target;
        }
    }(this);
}

const x1: classX = new classX();
alert(x1.getY());

x1.utilities.testSetOuterPrivate(4);
alert(x1.getY());

密码笔

原文由 bnieland 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题