Angular2和lodash ......为什么这么多戏剧?我的意思是......
以下是我的安装方式
npm install --save lodash
npm install --save @types/lodash
更新:
我跟着博客做了这个angular2-and-lodash-cannot-find-name: npm install @ types / 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 :(得分:3)
我也面临同样的问题(找不到名称'Partial'),所以临时我在文件中添加了Partial变量,如下所示,我得到错误,我知道这不是正确的解决方案,但我不会遇到以下更改后的任何副作用或奇怪行为可能对您有所帮助。
它缺少在全局JavaScript文件中定义的变量,因此无法在typescript中找到它,但是当它在浏览器中运行时它会得到参考。
var Partial : any;
答案 1 :(得分:2)
只需更改您的package.json
文件即可使用此功能:
@types/jasmine@2.5.41 // Or 2.5.38
它应该解决这个问题。
答案 2 :(得分:1)
可能会导致您的typescript
版本与lodash
版本或angular
版本不匹配。
angular 2.x
与typescript 2.0.x
angular 4.x
与typescript 2.2.x
首先确保它是正确的。
然后,请确保您的lodash
版本与您的typescript
版本兼容。
P.S
还有一件小事(不会引起任何问题) - install @types/lodash --save-dev
最好只是@types
定义模块。
答案 3 :(得分:1)
将此代码段添加到angular-cli.json
"scripts": [
"../node_modules/lodash/lodash.js" //make changes accordingly
],
在Component中,只需在导入部分之后添加声明部分并正常使用lodash。
import {EventsService} from '../../core/broadcast-event/broadcaster';
declare var _: any;
答案 4 :(得分:0)
如何将lodash导入组件?
import * as _ from 'lodash'
以上将导入所有LoDash,因此如果您担心块大小,您将需要指定您实际将要使用的运算符。
但是导入_
应该会自动选择@types。