相关疑难解决方法(0)

将 TypeScript NPM 包分解为多个文件而不暴露内部组件

我有一个用 TypeScript 编写的 NPM 包,旨在与 Node.js 应用程序一起使用。我在这个包中有一些类,它们的方法仅供内部使用,尽管我无法将它们标记为私有,因为它们被包内的其他组件使用。为了解决这个问题,我不从项目中导出该类,并且当我将类的实例返回给调用者时,我将其类型强制转换为仅具有可公开访问的方法的接口。

这工作正常,但如果我想将我的项目分成更小的文件,我怎样才能做到这一点而不被迫导出我的类,并冒滥用我的 NPM 模块的风险?

这是我正在尝试做的事情的简化示例:

文件:internal.ts

// Can I make this class not publicly accessible?
export class InternalClass {
    constructor() {

    }

    public sharedMethod(): void {
        // Accessible to users of the package
    }

    public protectedMethod(): void {
        // Only for use within the package
    }
}
Run Code Online (Sandbox Code Playgroud)

文件:external.ts

import { InternalClass } from "./internal";

export interface ExternalInterface {
    sharedMethod(): void;
    // protectedMethod is not available outside the package
}

export function makeInterface(): ExternalInterface { …
Run Code Online (Sandbox Code Playgroud)

node.js npm typescript

4
推荐指数
1
解决办法
2090
查看次数

标签 统计

node.js ×1

npm ×1

typescript ×1