【问题标题】:What is the correct way for a TypeScript NPM package to depend on an ambient module?TypeScript NPM 包依赖环境模块的正确方法是什么?
【发布时间】:2016-04-15 08:04:17
【问题描述】:

我有一个 TypeScript 包,它从 eventemitter3 JavaScript 包中继承了 EventEmitter。因为 EE3 不是用 TypeScript 编写的,所以我通过 Typings 将其模块定义安装为环境依赖项。

我刚刚花了一个小时阅读 TS 继承和类,因为我试图使用我的包并不断收到 on 在 EventEmitter 的子类上丢失的错误。最终我意识到我的消费项目还需要运行 typings install --ambient eventemitter3 以便它具有超类定义

有什么方法可以隐藏这个实现细节而不让使用包? IE。要么将 eventemitter3 声明自动转储到我自己的包的 lib/index.d.ts 中,要么在有人使用我的包时以某种方式安装此环境依赖项?

我不认为这是 this question 的重复,因为我认为作者在那里所做的是使用已经定义了自己的声明的 NPM 包。在我的例子中,我正在构建一个基于 TypeScript 的 NPM 包,它提供自己的声明,但会从 Typings 中引入环境声明。

如果有帮助,我正在构建的项目是 here。 TypeScript 新手,这是我第一次解决所有非错误编译器错误,所以请轻松处理我的缺失/any 类型。 :)

【问题讨论】:

    标签: typescript


    【解决方案1】:

    有什么方法可以隐藏这个实现细节,不让使用包

    没有。它与node.d.ts 相同。这是用户需要获得的东西,您需要提及他们需要获得的东西。

    【讨论】:

      猜你喜欢
      • 2022-11-15
      • 1970-01-01
      • 2022-06-24
      • 2017-04-14
      • 2018-12-15
      • 1970-01-01
      • 1970-01-01
      • 2018-08-13
      • 1970-01-01
      相关资源
      最近更新 更多