0

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

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

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

找不到名称“JustGage”

当我尝试构建应用程序时,由于此错误,编译失败。

我如何解决这个问题?

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

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

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

4

2 回答 2

1

因此,由于它已经在工作,因此问题不是第三方库的实际使用,而是打字稿问题,它已通过以下方式解决

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"
  ],
于 2016-12-07T16:03:06.323 回答
0

如果您尝试访问该JustGage库,import则如果您使用的是 es6 语法,则必须访问require它,否则就必须访问它。

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

import {JustGage} from 'path/JustGage'

或者您可以将此行放入您的文件中(假设您使用的是打字稿,否则将扩展名更改为您想要的任何内容):

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

当然,您必须在index.htmlconfig.

于 2016-12-06T05:00:55.347 回答