【问题标题】:TypeScript: Splitting module into multiple filesTypeScript:将模块拆分为多个文件
【发布时间】:2013-01-21 18:34:40
【问题描述】:

我想将同一模块中的类定义拆分为多个文件。 所以我确实喜欢这个,它奏效了。

a.ts:
module MyModule{
    class ClassA{
    }
}

b.ts:
module My Module{
    class ClassB{
    }
}

然后我尝试在 ClassB 中使用 ClassA 并做到了:

b.ts:
///<reference path="a.ts"/>
module MyModule{
    class ClassB{
        private a:ClassA;
    }
}

但它没有用; “ClassA”在 b.ts 中必须是“MyModule.ClassA”,尽管它们在同一个模块中。

我更喜欢上面这样更简单的方法。 你有什么想法吗?

【问题讨论】:

    标签: typescript


    【解决方案1】:

    您可以通过公开课程来解决您的问题:

    module MyModule{
        export class ClassA{
        }
    }
    

    我不确定您为什么需要这样做,因为它们实际上是同一模块的一部分 - 但似乎是这样。

    【讨论】:

    • 非常感谢。它成功了。我这样做的原因是源文件在一个文件中会非常大。本质上 ClassA 不需要公开,所以这有点不舒服,但我认为它比以前更好。
    • 在多个文件中拆分一个模块是一种很好的做法,所以我没有争论。
    • 我认为这不是正确的解决方案,因为它改变了 ClassA 的语义。我意识到这就是 TypeScript 的实现方式,但仍然如此。
    • @buzzy 要保持 ClassA 私有,您只需将它放在同一个模块声明中。你唯一不能做的就是两者兼而有之。同样值得记住的是,TypeScript 不支持内部或受保护的访问修饰符,因此您会发现自己使用 public 更多。
    猜你喜欢
    • 1970-01-01
    • 2019-11-06
    • 2011-12-09
    • 2017-01-02
    • 2014-07-15
    • 2014-05-01
    • 2020-01-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多