在Typescript Angular 2项目中使用通过npm安装的JS库

在Typescript Angular 2项目中使用通过npm安装的JS库,typescript,npm,webpack,angular,cal-heatmap,Typescript,Npm,Webpack,Angular,Cal Heatmap,我无法在我的Angular2项目中使用TypeScript。如果您能提供任何帮助,我们将不胜感激 我正在使用webpack()捆绑应用程序。这是你的电话号码。我用npm安装了cal热图,用tsd安装了类型定义。在我的应用程序的TypeScript代码中,我希望: import * as calheatmap from 'cal-heatmap'; 但是,当我在浏览器中打开应用程序时,calheatmap保持未定义状态,不会导入任何内容。该库基于d3,d3本身也可以工作。使用相同的软件包安装过程

我无法在我的Angular2项目中使用TypeScript。如果您能提供任何帮助,我们将不胜感激

我正在使用webpack()捆绑应用程序。这是你的电话号码。我用npm安装了cal热图,用tsd安装了类型定义。在我的应用程序的TypeScript代码中,我希望:

import * as calheatmap from 'cal-heatmap';
但是,当我在浏览器中打开应用程序时,
calheatmap
保持未定义状态,不会导入任何内容。该库基于d3,d3本身也可以工作。使用相同的软件包安装过程,以下内容仅适用于我的应用程序:

    import * as d3 from 'd3';
我怀疑cal heatmap不起作用,因为它(来自NPM)或不兼容,但我不知道如何解决这个问题


任何提示都将不胜感激,谢谢

好的,我把它做好了。不要在意cal热图模块的打字。它们不导出任何内容,因此在这种情况下没有有用的内容。不需要安装

然后,您可以执行以下操作:

import * as CalHeatMap from 'cal-heatmap';
...
new CalHeatMap().init({});

以前,我试图在CalHeatMap上直接调用init,而不进行实例化,类似于n00b。

我遇到了类似的情况。

不过我用的是systemjs。有趣的是CalHeatMap对象完全加载到浏览器中,但没有加载到组件中


我像那样导入了d3js和c3js,它们的加载非常完美。
我注意到的一点是,其他库将功能保存在一个对象中(即d3js中的d3);而在cal-heatmap中,它们返回一个函数(如果您查看内部,CalHeatMap实际上是一个函数)。

如果您将cal-heatmap与Webpack4捆绑在一起,由于cal-heatmap.js中的全局变量,我还需要使用Webpack ProvidePlugin,如下所示:

    new webpack.ProvidePlugin({
        CalHeatMap: "cal-heatmap"
    })
否则,我将在运行时看到此错误:

Uncaught ReferenceError: CalHeatMap is not defined
 at Module../src/app/js/myapp.js 

试试这个:
/
嗨,谢谢你的回复。这并不能解决这个问题,而且IIRC最新版本的Typescript不再需要引用符号。将“环境内部模块”与“环境外部模块”进行比较,我将检查该链接,谢谢。希望这部分文档仍然是最新的。