Javascript:在模块内部导出内容

问题描述

在 Java 中,我们有 4 个可见性级别。除了 publicprivate,我们有 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 某些东西(functionclass 等)但不在模块的公共 API 中(供图书馆的消费者使用)。只是为了在我的模块文件之间在本地使用。

解决方法

Breaking TypeScript NPM package into multiple files without exposing internal components

这似乎可以解决问题:package.json 定义了实际从 npm 包中导出的内容。仍然可以从项目内的任何地方导入所有内容,但导入是明确的。未通过 package.json 显式公开的内容无法从使用该包的其他项目导入。