2017-04-04 58 views
4

Angular2和lodash ...为什么这么多戏剧?我的意思是真的...Angular2和lodash ...找不到名字

下面是我如何安装

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

UPDATE:

我也跟着这样的博客,这样做,angular2-and-lodash-cannot-find-name: NPM安装@类型/ lodash @ ts2.0 - save-dev

它工作。只有错误是:

node_modules/@类型/茉莉

ERROR in [default] /Users/dude/Documents/frontend/qta-angular2/node_modules/@types/jasmine/index.d.ts:40:37 
A parameter initializer is only allowed in a function or constructor implementation. 

ERROR in [default] /Users/dude/Documents/frontend/qta-angular2/node_modules/@types/jasmine/index.d.ts:40:45 
Cannot find name 'keyof'. 

ERROR in [default] /Users/dude/Documents/frontend/qta-angular2/node_modules/@types/jasmine/index.d.ts:40:51 
'=' expected. 

ERROR in [default] /Users/dude/Documents/frontend/qta-angular2/node_modules/@types/jasmine/index.d.ts:42:45 
A parameter initializer is only allowed in a function or constructor implementation. 

ERROR in [default] /Users/dude/Documents/frontend/qta-angular2/node_modules/@types/jasmine/index.d.ts:42:55 
Cannot find name 'keyof'. 

ERROR in [default] /Users/dude/Documents/frontend/qta-angular2/node_modules/@types/jasmine/index.d.ts:42:61 
'=' expected. 

ERROR in [default] /Users/dude/Documents/frontend/qta-angular2/node_modules/@types/jasmine/index.d.ts:58:41 
Cannot find name 'Partial'. 

ERROR in [default] /Users/dude/Documents/frontend/qta-angular2/node_modules/@types/jasmine/index.d.ts:99:21 
Cannot find name 'Partial'. 

ERROR in [default] /Users/dude/Documents/frontend/qta-angular2/node_modules/@types/jasmine/index.d.ts:99:34 
Cannot find name 'Partial'. 

ERROR in [default] /Users/dude/Documents/frontend/qta-angular2/node_modules/@types/lodash/index.d.ts:241:12 
Duplicate identifier '_'. 

ERROR in [default] /Users/dude/Documents/frontend/qta-angular2/node_modules/@types/lodash/index.d.ts:241:15 
Cannot find namespace '_'. 

ERROR in [default] /Users/dude/Documents/frontend/qta-angular2/node_modules/@types/lodash/index.d.ts:243:24 
Cannot find name 'Partial'. 

ERROR in [default] /Users/dude/Documents/frontend/qta-angular2/node_modules/@types/lodash/index.d.ts:245:18 
Duplicate identifier '_'. 

ERROR in [default] /Users/dude/Documents/frontend/qta-angular2/node_modules/@types/lodash/index.d.ts:362:38 
Cannot find namespace '_'. 
+0

检查'typings.json',看看这是你lodash ' “lodash”: “注册表:NPM/lodash#4.0.0 + 20160305082308”' 如果不更改该犯lodash的,4.14.0是给你看到的错误。 – user3344978

+0

不是,它不在文件中 – Tampa

+0

这很可能是因为软件包的版本,请尝试降低软件包中的lodash,它的类型是 – Milad

回答

3

我也面临着同样的问题(无法找到名为“部分”),所以暂时我增加了部分变量如以下文件,其中我得到了错误,我知道这不是正确的解决方案,但在下面的改变后我不会遇到任何副作用或奇怪的行为,这可能对您有所帮助。

它缺少在全局JavaScript文件中定义的变量,因此无法在打字稿中找到,但是当它在浏览器中运行时,它会得到参考。

var Partial : any; 
1

可能发生的不匹配您的typescript版本事业lodash版本或angular版本。

  • angular 2.xtypescript 2.0.x
  • angular 4.xtypescript 2.2.x

运行运行,所以首先要确保它是正确的^。

然后,确保您的lodash版本与您的typescript版本兼容。

P.S 和一个更小的事情(不造成任何的问题你) - 这是更好地为install @types/lodash --save-dev它只是@types定义模块。

1

这个片段添加到您的角cli.json

"scripts": [ 
     "../node_modules/lodash/lodash.js" //make changes accordingly 
     ], 

在组件,才刚刚导入后部分添加声明部分和正常使用lodash。

import {EventsService} from '../../core/broadcast-event/broadcaster'; 
declare var _: any; 
0

你如何将lodash导入你的组件?
import * as _ from 'lodash'

以上将导入所有的LoDash的,所以如果你很在意块大小,你要指定的任何运营商你实际上将要使用。

但是导入为_应该会自动选取@types。