我曾经能够通过一条如下所示的导入语句在Angular中使用lodash方法:

import {debounce as _debounce} from 'lodash';

我现在在使用该语句时出现以下错误:

'"{...}/node_modules/@types/lodash/index"' has no exported member 'debounce'.

编译时唯一不会出错的是以下语句:

import * as _ from 'lodash'; 

在我的代码中,我将_debounce()改为_.debounce().这是唯一(和/或正确)的方法吗?有没有办法只导入go 盎司,还是因为"树上运动"而无关紧要?我意识到我可以编写自己的go 盎司函数,但我主要对"正确"的方法感兴趣.

p、 我try 过的其他变体(每个变体都有一些与之相关的错误):

import {debounce as _debounce } from 'lodash/debounce';
import * as _debounce from 'lodash/debounce';
import debounce = require('lodash/debounce');

仅供参考...我正在使用以下版本:

Angular :2.4.5

Typescript :2.1.5

Angular cli:1.0.0-beta.26

推荐答案

(if you care about tree shaking see 100)

npm install lodash --save
npm install @types/lodash --save-dev

如果只想导入所需的函数,应执行以下操作:

imp或t * as debounce from 'lodash/debounce'

imp或t { debounce } from "lodash";

将其用作:

debounce()

BTW:在使用angular 2时,您可能必须将typescript版本降级为2.0.10.十、

npm install typescript@2.0.10 --save-dev

UPDATE:

Recently I realised that lodash package is just not tree shakable, so if you need tree shaking just use lodash-es instead.

npm install lodash-es --save
npm install @types/lodash-es --save-dev

imp或t debounce from 'lodash-es/debounce'

Typescript相关问答推荐

如何声明循环数组类型?

如何在另一个if条件中添加if条件

相同端点具有不同响应时的RTKQuery类型定义

将props传递给子组件并有条件地呈现它''

类型{...}的TypeScript参数不能赋给类型为never的参数''

为什么typescript不能推断类的方法返回类型为泛型''

对于合并对象中的可选属性(例如选项),类型推断可能是错误的

打印脚本中的动态函数重载

有条件地删除区分的联合类型中的属性的可选属性

是否可以从函数类型中创建简化的类型,go 掉参数中任何看起来像回调的内容,而保留其余的内容?

ANGLING v17 CLI默认设置为独立:延迟加载是否仍需要@NgModule进行路由?

防止重复使用 Select 器重新渲染

找不到财产的标准方式?

如何创建由空格连接的多个字符串的类型

如何编辑切片器以使用CRUD调用函数?

TypeScrip-根据一个参数值验证另一个参数值

界面中数组中的混合类型导致打字错误

为什么发送空字段?

在TypeScript中,如何通过一系列过滤器缩小类型?

如何使用 Angular 确定给定值是否与应用程序中特定单选按钮的值匹配?