在使用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库吗?
答案 0 :(得分:0)
你永远不会以这种方式获得智能感知,因为你在文件的顶部定义TWEEN为"任何",因此说它可以是任何东西(没有类型,没有智能感知的)点。
你应该看一下这篇文章:
https://weblog.west-wind.com/posts/2016/Sep/12/External-JavaScript-dependencies-in-Typescript-and-Angular-2
它几乎告诉你,你要么在图书馆本身有打字,要么在安装时免费提供,要么就是没有打字。
如果您打算使用没有任何打字的库,您可能需要考虑自己创建打字。