web-dev-qa-db-ja.com

Angular 4でlodashを使用する

以前にAngular 4のアプリケーションでlodashをインポートし、次に示すように使用することで使用しました。

import lodash from 'lodash';

public getSubtotal() : number {
  return lodash.sumBy(this.cartItems, function(item) {        
    return item.product.price * item.item.quantity;
  })

}

同様にlodashを使用しようとしていますが、lodashが未定義であるというエラーが表示されます。

import lodash from 'lodash';

lodash.indexOf([1, 2, 1, 2], 2);

次のエラーが表示されます。

ERROR TypeError: Cannot read property 'indexOf' of undefined
at CustomizeComponent.showTopping (customize.component.ts:39)
at Object.eval [as updateDirectives] (CustomizeComponent.html:285)
at Object.debugUpdateDirectives [as updateDirectives] (core.js:14638)
at checkAndUpdateView (core.js:13785)
at callViewAction (core.js:14136)
at execComponentViewsAction (core.js:14068)
at checkAndUpdateView (core.js:13791)
at callViewAction (core.js:14136)
at execEmbeddedViewsAction (core.js:14094)
at checkAndUpdateView (core.js:13786)
11
koque

最初に、パッケージ lodash および @ types/lodash (タイプ定義を含む)をインストールする必要があります。

_npm i lodash
npm i --save-dev @types/lodash
_

次に、lodashを使用できます。 _import * as _ from 'lodash';_を使用し、さらに_.indexOf([1, 2, 1, 2], 2);を実行します

また、_import * as _isEmpty from 'lodash/isEmpty';_(joshrathkeに感謝)または_import {isEmpty} from 'lodash';_も実行できます。

17
pzaenger