如何在angular 2中使用underscore.js库

时间:2016-06-01 13:03:34

标签: angular typescript

我尝试使用angular 2创建一个应用程序,并希望在我的.ts文件中使用underscore.js库,例如当我想使用此函数时:

   let myId = _.rest([5, 4, 3, 2, 1]);

_未定义并抛出错误,我不想在我的模块中使用declare var _ : any;

6 个答案:

答案 0 :(得分:76)

对于基于https://cli.angular.io的项目,我需要执行以下操作:

1)导入库

npm install underscore --save
npm install @types/underscore --save

2)在tsconfig.app.json中,将下划线添加到数组'types':

"types": [
  "underscore"
]

3)在任何组件文件中我需要使用下划线,我添加了这个

import * as _ from 'underscore';

4)然后我可以使用:

console.log('now: ', _.now());

以及http://underscorejs.org

的所有功能

答案 1 :(得分:18)

您必须为下划线添加TypeScript定义:

  

tsd安装下划线

配置SystemJS

System.config({
  [...]
  paths: {
    underscore: './node_modules/underscore/underscore.js'
  }
});

最后导入模块

import * as _ from 'underscore';

答案 2 :(得分:5)

检查此回购。它有一个下划线的例子

https://github.com/angular/angular-cli/wiki/3rd-party-libs#adding-underscore-library-to-your-project

我在我的导入上执行此操作以使其正常工作

//Place this at the top near your imports
/// <reference path="../../../../typings/globals/underscore/index.d.ts" />
import {Injectable} from '@angular/core';
import {Http} from '@angular/http';
import * as _ from 'underscore';

确保您有正确的参考路径来强调打字。

答案 3 :(得分:5)

对于基于angular2-seed的项目,我需要:

  1. 安装下划线包:

    npm install underscore --save
    
  2. 将以下内容添加到globalDependencies下的typings.json:

    "underscore": "github:DefinitelyTyped/DefinitelyTyped/underscore",
    
  3. 在project.config.ts下添加以下内容:

    this.SYSTEM_CONFIG_DEV.paths['underscore'] =
        `${this.APP_BASE}node_modules/underscore`;
    this.SYSTEM_BUILDER_CONFIG.packages['underscore'] = {
        main: 'underscore.js',
        defaultExtension: 'js'
    };
    
  4. 导入&#34; _&#34;在我的ts文件中:

    import * as _ from 'underscore';
    

答案 4 :(得分:4)

Angular 4的下划线

我已经使用这种方式为Angular 4.0.2包含了这个库:

npm install underscore --save
npm install @types/underscore --save

systemjs.config.js

map: {
      // our app is within the app folder
      'app': 'app',
     .....
   // other libraries
      'rxjs':        'npm:rxjs',
      'underscore':  'npm:/underscore/underscore.js'  
 }

最后:

import * as _ from 'underscore';

答案 5 :(得分:1)

您需要在项目中安装underscore.d.ts typings以使用其js库。检查this以了解如何包含打字