看看下面的代码:
module MyModule {
class MyPrivateClass {
...
}
export class MyPublicClass {
private var: MyPrivateClass; // MyPrivateClass is unknown
}
}
Run Code Online (Sandbox Code Playgroud)
我希望MyPrivateClass仅在MyModule中可见,特别是在MyPublicClass中内部使用.在MyModule之外,只有MyPublicClass可见.我认为上面的布局应该做但VS抱怨MyPrivateClass在MyPublicClass中不可见.在MyPrivateClass的定义之前添加导出使其对MyPublicClass可见,但是它也可以从外部看到.
有没有办法让它只对MyPublicClass可见?
谢谢.
下面是一个工作示例,它显示私有类(公共类),使用公共类中的私有类并尝试使用生成错误的私有类.
如果仍然出现错误,您是否能够透露您尝试用于导致问题的模块的名称?
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
Run Code Online (Sandbox Code Playgroud)
嗯,我没有看到任何问题,但不要忘记初始化字段值,否则编译器将不会生成该字段:
module MyModule {
class MyPrivateClass {
}
export class MyPublicClass {
private instance: MyPrivateClass; // MyPrivateClass is unknown
constructor() {
this.instance = new MyPrivateClass();
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9699 次 |
| 最近记录: |