我曾经能够通过一个如下所示的import语句在Angular中使用lodash方法:
import {debounce as _debounce} from 'lodash';
使用该语句时,我现在收到以下错误:
'"{...}/node_modules/@types/lodash/index"' has no exported member 'debounce'.
唯一可以无错误编译的是这句话:
import * as _ from 'lodash';
在我的代码中,我将_debounce()
更改为_.debounce()
。这是唯一(和/或正确)的方式吗?有没有办法只进口去抖,还是由于“树木”而无关紧要?我意识到我可以编写自己的去抖函数,但我主要对“正确”的方法感兴趣。
P.S。我尝试过的其他变体(每种变体都有一些与之相关的错误):
import {debounce as _debounce } from 'lodash/debounce';
import * as _debounce from 'lodash/debounce';
import debounce = require('lodash/debounce');
仅供参考...我正在使用以下版本:
Angular:2.4.5
打字稿:2.1.5
Angular-cli:1.0.0-beta.26
答案 0 :(得分:59)
(如果您关心树摇动,请参阅更新)
我想是为了将lodash带入你已经完成的项目中
npm install lodash --save
npm install @types/lodash --save-dev
如果您想要导入所需的功能,您应该这样做:
import * as debounce from 'lodash/debounce'
或
import { debounce } from "lodash";
将其用作:
debounce()
BTW:您可能需要将打字稿版本降级为2.0.10
,因为您使用的是角度2.x.
npm install typescript@2.0.10 --save-dev
<强>更新强>
最近我意识到lodash包不是树可摇动的,所以如果你需要三次摇动,只需使用lodash-es。
npm install lodash-es --save
npm install @types/lodash-es --save-dev
import debounce from 'lodash-es/debounce'
答案 1 :(得分:5)
在角内导入lodash或任何JavaScript库:
步骤1::安装libarary(lodash)
eksctl
步骤2::将其导入组件并使用。
按以下步骤导入它:
npm i --save lodash
或
import 'lodash';
declare var _:any;
第3步:为Lo-Dash安装类型定义(可选)
import * as _ from 'lodash';
如果仍有疑问,请参见示例
npm install --save-dev @types/lodash
答案 2 :(得分:0)
我有同样的问题,在我改变了#34; @ types / lodash&#34;之后它就开始工作了。版本&#34; 4.14.50&#34;。
答案 3 :(得分:0)
这为我解决了此问题,这由Kuncevič撰写,并由 Roy
编辑yarn add lodash-es
yarn add @types/lodash-es --dev
import { debounce as _debounce } from 'lodash';
我必须导入es-modules,否则会出现编译错误-很有可能是由于我的配置(tsconfig.json)。
答案 4 :(得分:0)