Angular2 在模板中使用第三方库

Angular 2 using third party libraries in template

我正在尝试在我的应用程序中使用第三方 (JustGage) 我已将其正确加载到 angular-cli.json 文件中 并且我能够在我的组件中像这样实例化它

ngAfterViewInit() {
    var g = new JustGage({
      id: "gauge",
      value: 67,
      min: 0,
      max: 100,
      title: "System Health"
    });
}

这实际上很好用,但我注意到我的 IDE 抱怨

Cannot find name 'JustGage'

当我尝试构建应用程序时,编译因这个错误而失败。

我如何解决这个问题?

顺便说一句,我尝试声明一个 JustGage:任何 然后调用 this.JustGage ,但未呈现仪表和控制台 更新

declare var require: any;
var JustGage = require("justgage/justgage.js");

所以要求带来了一些东西,但它不是 JustGage 说 JustGage 不是构造函数...

如果您尝试访问那个 JustGage 库,您必须 import 如果您使用的是 es6 语法,或者 require 否则。

使用这样的名称意味着您假设这是 global variable

import {JustGage} from 'path/JustGage'

或者你可以将这一行放在你的文件中(假设你使用的是打字稿,否则将扩展名更改为任何你想要的):

/// <reference path="path/JustGage.d.ts" />

当然,您必须在 index.htmlconfig 中的某处引用您的库。

所以因为它已经在工作了,所以问题不是第三方库的实际使用,而是打字稿问题

解决了
declare var JustGage: any;

在导入部分 之后我能够编译

为了以防万一,脚本的实际加载是在 angular-cli.json

中完成的
"scripts": [
    "../node_modules/chart.js/dist/Chart.js",
    "../node_modules/justgage/raphael-2.1.4.min.js",
    "../node_modules/justgage/justgage.js"
  ],