我正在尝试使用SystemJS在TypeScript和Angular 2中正确包含第三方模块。在这种情况下,第三方库恰好是amCharts,但可能这可能是任何库。
这是我目前正在做的事情(并且有效):
index.html
布局:的index.html:
<script src="node_modules/amcharts3/amcharts/amcharts.js"></script>
<script src="node_modules/amcharts3/amcharts/serial.js"></script>
组件:
export class GraphComponent {
ngOnInit() {
AmCharts.makeChart(...); // draw chart
}
}
这很有效,我的图表呈现得很好,但是我的TypeScript编译器(在Atom中)抱怨它&#34; [c]没有找到名字&#39; AmCharts&#39;&#34;在我的组件文件中。这是有道理的,因为我从未在该文件中声明它。包括两个脚本只是使名称全局可用。
有些东西让我觉得我真正应该做的是
index.html
import
语句加载库而不是依赖于全局变量有人能指出我正确的方向吗?
答案 0 :(得分:0)
声明文件(* .d.ts)为JavaScript代码中的结构提供TypeScript声明。最好看的地方是DefinitelyTyped,你可以找到AmCharts here的声明文件。
您可以通过添加引用它的行来告诉转换器有关声明文件:
/// <reference path="AmCharts.d.ts" />