需要一个正确的方法从我的包中导出typescript类,以便它可以被其他包扩展



我正在研究一个typescript库包(说' MyPkg '),它有一些类(说' MyPkgClass '位于一些子目录[例如:src/path/to/MyPkg]),具有一些所需的功能,消费者包,比如' OtherPkg '应该扩展' MyPkgClass ',然后定义任何额外的功能

这背后的想法是为消费包提供一些基本功能(在我的控制下),以及我以后可能需要调整,增强等。

在本地测试,在OtherPkg下使用npm链接,我意识到我需要导入' MyPkgClass '为


Import MyPkgClass from “MyPkg/bin/<path>/<to>/MyPkgClass” 

显然,这很糟糕,因为如果我觉得以后需要重新组织的话,它会限制我移动文件/重命名类。
我当然可以在' bin '下的固定位置有一个不同的类,并从' MyPkgClass '扩展,这样消费者OtherPkg就不会中断。但这感觉像是一个糟糕的设计,可能不是正确的/推荐的方式。

暴露MyPkgClass的正确方法是什么?我应该从索引中重新导出它吗?我的体重是多少?我应该将MyPkgClass导出为类型吗?

有谁可以帮助标准打字文档,或一些例子?-一个寻求帮助的新手

我试着搜索上述用例的typescript文档,但我没有得到正确的命中,甚至可能没有使用正确的搜索条件:(

对于像

这样需要导入的问题Import MyPkgClass from “MyPkg/bin/<path>/<to>/MyPkgClass”

可以从index导出。位于子项目MyPkg的根目录,如下所示:

MyPkg/index.ts
export * from './bin/<path>/<to>/MyPkgClass”';

,然后在你想要使用它的另一个模块。

import MyPkgClass from 'MyPkg';

引用https://balramchavan.medium.com/smarter-way-to-organize-import-statements-using-index-ts-file-s-in-angular-c685e9d645b7

要扩展基类,您可以简单地执行:

class OtherPkgClass extends MyPkgClass {
constructor(someParameter: String) {
super(someParameter);
}
private newMethod() {
...
}
}

引用https://www.typescriptlang.org/docs/handbook/classes.html继承

相关内容

  • 没有找到相关文章

最新更新