问题描述
在 Java 中,我们有 4 个可见性级别。除了 public
和 private
,我们有 protected
级别和一个默认级别(没有修饰符),也称为“package-local”或“package-private”.
修饰符 | 类 | 包装 | 子类 | 世界 |
---|---|---|---|---|
公开 | Y | Y | Y | Y |
受保护 | Y | Y | Y | X |
无修饰符 | Y | Y | X | X |
私有 | Y | X | X | X |
见:https://www.programcreek.com/2011/11/java-access-level-public-protected-private/
我特别需要 Javascript 中的这种“包私有”级别。 Javascript 模块有类似的方法吗?
我正在编写一个库(NPM 包)并且我想要export
某些东西(function
、class
等)但不在模块的公共 API 中(供图书馆的消费者使用)。只是为了在我的模块文件之间在本地使用。
解决方法
Breaking TypeScript NPM package into multiple files without exposing internal components
这似乎可以解决问题:package.json 定义了实际从 npm 包中导出的内容。仍然可以从项目内的任何地方导入所有内容,但导入是明确的。未通过 package.json 显式公开的内容无法从使用该包的其他项目导入。