我有一个NodeJS应用程序和几个本地包(我想与其他浏览器应用程序共享的一些实用程序),都用Typescript编写,结构如下:
程序包A (具有一些基本的实用程序功能)
B包(使用实用程序功能执行更复杂的操作)
NodeJS应用(我需要同时使用基本实用程序功能和复杂功能)
所有这些软件包均已构建为等效于.js的版本,但是当我尝试在NodeJS应用程序中使用软件包A中的方法时出现错误。
例如:
Package A / Collections.ts:
class Collection{
count(){ ...code here }
}
包B / ComplexCollections.ts:
import Collection from "project-a/Collection";
class ComplexCollection extends Collection{
}
NodeJS app / index.ts:
import ComplexCollection from "project-B/ComplexCollection";
const collection = new ComplexCollection();
colection.count() // this gives `error TS2339: Property 'count' does not exist on type 'ComplexCollection'`
似乎包B没有公开包的A Collection类。
我可以通过直接使用.ts文件来解决此错误,但据我所知,根据this comment
,这不是一个好习惯如何解决此问题? 或采用这种设置的本地开发工作流程是什么?
我的最终计划是在通过angularpack,react,vue或vanilla JS构建的Web应用程序中使用这些软件包(通过Webpack)