我有一个TypeScript包,它从eventemitter3 JavaScript包中继承EventEmitter。因为EE3不是用TypeScript编写的,所以我通过Typings将其模块定义安装为环境依赖。
我只花了过去一小时阅读TS继承和类,因为我试图使用我的包,并且不断收到在EventEmitter的子类上缺少on
的错误。最终我意识到我的消费项目还需要运行typings install --ambient eventemitter3
,以便它具有超类定义
有没有办法隐藏这个实现细节来消费包?即要么自动将eventemitter3声明转储到我自己的包的lib / index.d.ts中,要么在有人消耗我的包时以某种方式安装这个环境依赖?
我认为这不是this question的副本,因为我认为作者正在做的是使用已经定义了自己的声明的NPM包。在我的例子中,我正在构建一个基于TypeScript的NPM包,它提供了自己的声明,但它从Typings中提取了环境声明。
如果有帮助,我正在建设的项目是here。 TypeScript的新功能,这是我第一次通过所有非错误编译器错误进行销售,因此请轻松查看我缺少的/ any
类型。 :)
答案 0 :(得分:0)
有没有办法隐藏这个实现细节来消费包
没有。它与node.d.ts
相同。这是用户需要获得的东西,你需要提到他们需要得到的东西。