具有第三部分库和角度cli的智能感知

时间:2016-12-10 12:43:36

标签: npm global intellisense angular2-cli

在使用angular2-cli创建的项目中,我需要使用一些应该在全局javascript范围内可用的第三方javascript库(例如来自tween.js库的TWEEN命名空间)。

相对于angular-cli guide安装js库作为全局我已经用npm安装它并在angular-cli.json文件的“scripts”数组中添加库脚本。

"scripts": [
    "../node_modules/tween.js/src/Tween.js"
  ],

要在角度组件中使用全局TWEEN名称空间,我已将其声明为文件开头的常量变量,如下所示:

import { Component, OnInit } from '@angular/core';

declare const TWEEN: any;

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.scss']
})
export class AppComponent implements OnInit {
  title = 'app works!';

  constructor() { }

  ngOnInit() {

    let tween = new TWEEN.Tween({x: 0}).to({x: 1}, 2000);

    // .. 

  }
}

这样可行,但问题是我没有以这种方式获得任何第三方库的智能感知(我正在使用WebStorm)。有什么办法可以让intellisense工作吗?或者有更好的方法在角度2工作流程中导入第三部分JavaScript库吗?

1 个答案:

答案 0 :(得分:0)

你永远不会以这种方式获得智能感知,因为你在文件的顶部定义TWEEN为"任何",因此说它可以是任何东西(没有类型,没有智能感知的)点。

你应该看一下这篇文章: https://weblog.west-wind.com/posts/2016/Sep/12/External-JavaScript-dependencies-in-Typescript-and-Angular-2
它几乎告诉你,你要么在图书馆本身有打字,要么在安装时免费提供,要么就是没有打字。

如果您打算使用没有任何打字的库,您可能需要考虑自己创建打字。