我正在用 typescript 构建一个库,并通过 npm 发布。
在作为库的起点的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
标记在你的tsconfig.json
(或从命令行)到true
并使用 tsdoc 注释@internal
tag.
// internal/my_file.ts
/** @internal */
export function myInternalFunction() {}
请注意,这将从类型声明中删除该函数,因此它不会在编辑器中自动完成,但如果您确实需要隐藏内部详细信息,我建议您使用捆绑代码Rollup https://rollupjs.org/使用 TypeScript 插件。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)