Как использовать библиотеку underscore.js в angular 2

Я пытаюсь создать приложение с angular 2 и хочу использовать библиотеку underscore.js в моих .ts файлах, например, когда я хочу использовать эту функцию:

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

_ не определяет и бросает ошибку, и я не хочу использовать declare var _ : any; в своем модуле

Ответы

Ответ 1

Вам нужно добавить TypeScript Определения для Underscore:

tsd установить подчеркивание

Настроить SystemJS

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

Наконец, импортируйте модуль

import * as _ from 'underscore';

Ответ 2

Для проекта, основанного на 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

Ответ 3

Для проекта, основанного на angular2-seed, мне нужно:

  • Установите пакет подчеркивания:

    npm install underscore --save
    
  • Добавьте к typings.json следующее: globaldependencies:

    "underscore": "github:DefinitelyTyped/DefinitelyTyped/underscore",
    
  • Добавьте в проект 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'
    };
    
  • Импортировать "_" в мои ts файлы:

    import * as _ from 'underscore';
    

Ответ 4

Проверьте это репо. Он имеет пример для подчеркивания

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';

Убедитесь, что у вас есть правильный ссылочный путь, чтобы подчеркнуть типизацию.

Ответ 5

Подчеркивание для 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';

Ответ 6

Для использования библиотеки js вам необходимо установить в свой проект шаблоны underscore.d.ts. Проверьте этот, чтобы узнать, как включать тики