javascript - typescript 库: Hide internal exports

标签 javascript typescript module shared-libraries

我正在使用 typescript 构建一个库,并通过 npm 发布。

在作为库的起点的index.ts中,导出了所有公共(public)类和枚举。

import { MyClass } from './internal/my-class'
import { MyEnum } from './internal/my-enum'
export { MyClass, MyEnum }

这效果很好,但我注意到用户也可以通过使用文件的直接路径来导入内部函数/类等。

// in a project that installed my library as an npm dependency
import { InternalClass } from 'my-lib/dist/internal/internal-class'

有办法避免这种情况吗?

我需要“导出”InternalClass,因为我在整个库中导入并使用它,但我不想公开公开它。我尝试使用命名空间,但无法真正使其工作。

最佳答案

您应该将 tsconfig.json(或从命令行)中的 stripInternal 标志设置为 true 并使用 tsdoc 注释@internal 标记。

// internal/my_file.ts
/** @internal */
export function myInternalFunction() {}

请注意,这将从类型声明中删除该函数,因此它不会在编辑器中自动完成,但如果您确实需要隐藏内部详细信息,我建议您使用 Rollup 捆绑您的代码。使用 TypeScript 插件。

关于javascript - typescript 库: Hide internal exports,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59122428/

相关文章:

angular - 在 IONIC 3 中,如何在 ios 上上传 word 或 pdf 等文件?

javascript - 链式方法调用不适用于原始元素或克隆元素,为什么?

angular - 这个 ngrx 选择器在做什么?

javascript - 由于 d3 事件错误,无法转换 typescript

php - 我在 Prestashop 中看不到我的测试模块页面

javascript - ES6 完整项目中的模块

javascript - Require.js 未捕获类型错误 : jqOAuth is not a function

javascript - 没有图像显示

javascript - 在给定 JavaScript 语句的情况下使用 R 下载文件

javascript - 使用 javascript,如何在 HTML 页面上的任何输入元素之前添加 $ 符号