【发布时间】:2013-12-02 09:10:42
【问题描述】:
我认为这是this question 的不同倾向。也许这个问题的措辞更好,你什么时候使用 public,而不是 export?从我的阅读来看,似乎 C#/Java 人认为公开的任何地方,你真正想要的是导出。
您将在何时/何地使用 public 而不是 export?
【问题讨论】:
标签: typescript public
我认为这是this question 的不同倾向。也许这个问题的措辞更好,你什么时候使用 public,而不是 export?从我的阅读来看,似乎 C#/Java 人认为公开的任何地方,你真正想要的是导出。
您将在何时/何地使用 public 而不是 export?
【问题讨论】:
标签: typescript public
public 作为可见性修饰符在技术上什么都不做(默认情况下,所有类成员都是公共的);它作为private 的明确对应物存在。仅在类内是合法的。
export 根据其上下文(在文件的顶级成员或module 块中)执行两种不同的操作。
在文件的顶层,export 表示包含文件是一个外部模块(即它将使用 RequireJS、Node 的 require 命令或其他一些 CommonJS/ AMD 兼容的加载程序)并且您放置 export 的符号应该是该外部模块的导出成员。
在module 块内,export 表示指定成员在该模块块外可见。 module 块中事物的默认值是“闭包隐私”——未导出的对象在模块外不可见。当module 内的声明具有export 修饰符时,它反而成为可以从模块外部访问的模块对象的属性。
public 和 export 在语言中没有任何地方是合法的,因此在这方面选择相对容易。
【讨论】:
export 专门用于模块,例如:
module foo{
export var bar;
}
public 用于类成员/方法,例如:
class Foo{
public bar = 123;
}
如果您想了解有关模块的更多信息,我制作了一个视频:http://www.youtube.com/watch?v=KDrWLMUY0R0&hd=1
【讨论】: