javascript - Typescript 库:隐藏内部导出
问题描述
我正在使用通过 npm 发布的 typescript 构建一个库。
在作为库起点的 index.ts 中,导出了所有公共类和枚举。
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
,因为我在整个库中导入和使用它,但我不想公开它。我尝试使用命名空间,但无法真正让它工作。
解决方案
您应该在您的(或从命令行)中设置stripInternal
标志并使用带有标签的 tsdoc 注释。tsconfig.json
true
@internal
// internal/my_file.ts
/** @internal */
export function myInternalFunction() {}
请注意,这将从类型声明中删除该函数,因此它不会在编辑器中自动完成,但如果您确实需要隐藏内部细节,我建议您使用Rollup与 TypeScript 插件捆绑您的代码。
推荐阅读
- reporting-services - 无法配置 SQL Server 报告服务 2017
- bitbucket - 在 Dataflow 工作人员上使用 SSH 密钥来拉取私有库
- angularjs - AngularJS 在模板中向用户反馈 $http 时遇到问题
- python - Python 3.4 支持已被弃用,无法安装 python 模块,使用 pip 命令
- javascript - 做出反应。从表中删除特定行
- c# - 具有一个 1:1 关系和 1:many 的实体 - 设置外键
- swift - 用 ios swift 将字符串文本替换为数组字符串中的特定文本
- java - 我们可以从 byteArrayResource 获取文件名吗?
- python - 稀疏(常规)数据的 matplotlib 轮廓显示伪影
- tensorflow - 对象是什么类型,操作或张量