看下面的代码:
module MyModule {
class MyPrivateClass {
...
}
export class MyPublicClass {
private var: MyPrivateClass; // MyPrivateClass is unknown
}
}
我希望MyPrivateClass仅在MyModule内部可见,专门供MyPublicClass内部使用。在MyModule之外,只有MyPublicClass应该是可见的。我认为上面的布局应该可行,但是VS提示MyPublicClass内部看不到MyPrivateClass。
在MyPrivateClass的定义之前添加导出使MyPublicClass可以看到它,但是从外部也可以看到它。
有没有办法使它仅对MyPublicClass可见?
谢谢你。
最佳答案
这是一个工作示例,其中显示私有(private)类,公共(public)类,使用公共(public)类中的私有(private)类并尝试使用私有(private)类,这会产生错误。
如果仍然出现错误,是否可以透露试图用于引起问题的模块的名称?
module MyModule {
class MyPrivateClass {
doSomething() {
return 1;
}
}
export class MyPublicClass {
private x = new MyPrivateClass();
someFunction() {
return this.x.doSomething();
}
}
}
var examplePublic = new MyModule.MyPublicClass();
var result = examplePublic.someFunction(); // 1
var examplePrivate = new MyModule.MyPrivateClass(); // error