以前はAngularで次のようなインポートステートメントを使用してlodashメソッドを使用できました。
_import {debounce as _debounce} from 'lodash';
_
そのステートメントを使用すると、次のエラーが表示されます。
_'"{...}/node_modules/@types/lodash/index"' has no exported member 'debounce'.
_
エラーなしでコンパイルできる唯一のものは、次のステートメントです。
_import * as _ from 'lodash';
_
私のコードでは、_debounce()
を_.debounce()
に変更します。それがそれを行う唯一の(および/または正しい)方法ですか?デバウンスのみをインポートする方法はありますか、それとも「ツリーシェーキング」のために重要ではありませんか?私は自分でデバウンス関数を書くことができることを理解していますが、私は主にこれを行う「正しい」方法に興味があります。
追伸私が試した他のバリエーション(それぞれに何らかのエラーが関連付けられています):
_import {debounce as _debounce } from 'lodash/debounce';
import * as _debounce from 'lodash/debounce';
import debounce = require('lodash/debounce');
_
参考までに、次のバージョンを使用しています。
角度:2.4.5
TypeScript:2.1.5
角度-cli:1.0.0-beta.26
Kuncevičによる「更新」の下に書かれ、Royによって編集されたように、これは私にとってそれを解決しました
yarn add lodash-es
yarn add @types/lodash-es --dev
import { debounce as _debounce } from 'lodash';
Es-modulesをインポートする必要がありました。それ以外の場合は、コンパイルエラーが発生しました-おそらく、構成(tsconfig.json)が原因です。
「@ types/lodash」をバージョン「4.14.50」に変更した後、同じ問題が発生し、機能し始めました。