错误TS2315:类型'ElementRef'不是通用材料角度

时间:2018-04-25 14:14:42

标签: javascript angular angular-material

  

错误   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

6 个答案:

答案 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 -Dnpm 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文件中看到的那样,版本不匹配。 有两种方法可以解决此错误:

  1. 使用以下命令升级角度: ng update 这会将您的角度版本更改为6.x )。
  2. 将cdk和材料的版本更改为 5.2.0手动,然后输入命令: npm install 这将添加版本5.2.0的材料< / em>的

答案 5 :(得分:-1)

也许它与刚刚出现的棱角1.6相关?

我遇到了同样的问题,但是我们无法弄清楚如何更新它(不是降级一件事,升级其他所有东西),但我无法弄明白。< / p>

尝试npm update -D而不是npm update -S但它没有帮助。

这个想法来自:I am new to angular. I just installed angular material and angular animations in my small project and got some of the errors