错误 node_modules/@angular/material/button-toggle/typings/button-toggle.d.ts(136,20):
错误TS2315:类型'ElementRef'不是通用的。
node_modules/@angular/material/button-toggle/typings/button-toggle.d.ts(154104):
错误TS2315:类型'ElementRef'不是通用的
我正在尝试安装材料,但看起来这就是错误。
DATA:
Angular CLI: 1.7.4
Node: 9.11.1
答案 0 :(得分:25)
这里最好的方法是更改所有材质依赖项,使其与角度为5.2.0的角色相匹配
INITIAL
"dependencies": {
"@angular/core": "^5.2.0",
"@angular/cdk": "^6.0.1",
"@angular/material": "^6.0.1"
}
只需将其更改为其他角度组件的当前版本即可。
FINAL
"dependencies": {
"@angular/core": "^5.2.0",
"@angular/cdk": "^5.2.0",
"@angular/material": "^5.2.0"
}
然后npm install
答案 1 :(得分:8)
当一个版本和另一个版本的材料包中的所有角度包装都会发生这种情况。
当我的角度包版本为5.2且材料版本为6.0时,我遇到了这个问题 所以我将材料版本更改回5.1,问题已修复。
答案 2 :(得分:3)
好的,这是我修复它的方法: 第一步:
npm update -D
和npm update -S
但我不认为这是必要的,因为问题就在那里。步骤:
npm install -g @angular/cli@latest
ng update
The Command抱怨我需要跑(所以我做了):
ng update @angular/cli
尝试后:ng serve
我收到错误,因为'hammerjs'没有安装,所以我跑了(但这可能不是你的情况):
npm install hammerjs --save
和
npm install @types/hammerjs --save-dev
我不明白--save-dev的意思,但我是这样做的。它现在编译。
这里发现了最后一件事: Module not found: Error: Can't resolve 'hammerjs'
希望这有帮助。
答案 3 :(得分:2)
我遇到了同样的问题,但我将@ angular / material降级为5.0版本。 你可以尝试一下。
答案 4 :(得分:1)
当角度版本和材质版本不匹配时,会发生此错误。 要查看错误,请转到package.json文件,您可以在其中找到角度版本和材料版本。
"dependencies": {
"@angular/animations": "^5.2.0",
"@angular/cdk": "^6.2.1", //ERROR here the version is 6.x
"@angular/common": "^5.2.0",
"@angular/compiler": "^5.2.0",
"@angular/core": "^5.2.0",
"@angular/forms": "^5.2.0",
"@angular/http": "^5.2.0",
"@angular/material": "^6.2.1", // ERROR here the material version is 6.x
"@angular/platform-browser": "^5.2.0",
"@angular/platform-browser-dynamic": "^5.2.0",
"@angular/router": "^5.2.0",
"core-js": "^2.4.1",
"hammerjs": "^2.0.8",
"rxjs": "^5.5.6",
"zone.js": "^0.8.19"}
},
正如您在上面的package.json文件中看到的那样,版本不匹配。 有两种方法可以解决此错误:
答案 5 :(得分:-1)
也许它与刚刚出现的棱角1.6相关?
我遇到了同样的问题,但是我们无法弄清楚如何更新它(不是降级一件事,升级其他所有东西),但我无法弄明白。< / p>
尝试npm update -D
而不是npm update -S
但它没有帮助。