错误TS2315:类型'ElementRef'不是通用的

时间:2018-05-02 12:02:14

标签: angular typescript npm angular-material

我正在尝试在我的应用中使用@ angular / materials并且它正在成功编译,但是我收到以下错误:

webpack: Compiled successfully.
ERROR in node_modules/@angular/material/button-toggle/typings/button-toggle.d.ts(136,20): error TS2315: Type 'ElementRef' is not generic.
node_modules/@angular/material/button-toggle/typings/button-toggle.d.ts(154,104): error TS2315: Type 'ElementRef' is not generic.
node_modules/@angular/material/slide-toggle/typings/slide-toggle.d.ts(53,15): error TS2315: Type 'ElementRef' is not generic.
node_modules/@angular/material/slide-toggle/typings/slide-toggle.d.ts(55,18): error TS2315: Type 'ElementRef' is not generic.

这似乎不是一个常见的问题,有没有人知道如何解决?

使用:

Angular CLI: 1.7.4
Node: 8.11.1
OS: win32 x64
Angular: 5.2.10
... animations, common, compiler, compiler-cli, core, forms
... http, language-service, platform-browser
... platform-browser-dynamic, router

@angular/cdk: 6.0.0-rc.14-29bf024
@angular/cli: 1.7.4
@angular/material: 6.0.0-rc.14-29bf024
@angular-devkit/build-optimizer: 0.3.2
@angular-devkit/core: 0.3.2
@angular-devkit/schematics: 0.3.2
@ngtools/json-schema: 1.2.0
@ngtools/webpack: 1.10.2
@schematics/angular: 0.3.2
@schematics/package-update: 0.3.2
typescript: 2.5.3
webpack: 3.11.0

4 个答案:

答案 0 :(得分:13)

您正在使用@angular/material@angular/cdk 6RC版本(6.0.0-rc.14-29bf024),这可能取决于Angular版本6.

@angular/material软件包降级到最新的稳定版本(如果您直接为生产构建)或尝试将角度升级到6.0.0-rc.6版本(如果您正在瞄准发布版本)在角6稳定出来之后)。

答案 1 :(得分:11)

npm uninstall @angular/material  --save
npm install @angular/material@5.2.4 --save

对我有用。

角度版本为5.2.1

答案 2 :(得分:0)

这是依赖项问题,需要重新安装依赖项。

在package.json 将您的角度版本与“@ angular / material”匹配,它应该是相似的。 然后运行

npm install 

答案 3 :(得分:0)

我们遇到了同样的问题。对于我们来说,将Angular升级到6还不是一个选择,因为我们有一个不支持Angular 5的依赖项(目前正在重新考虑该依赖项)。将Material降至版本5是一个选择,但不是理想选择,因为我们选择版本6的原因是它修复了Material选项卡上的一个非常讨厌的错误。

对我们有用的是将Node升级到8.10。我不确定为什么能解决这个问题,但是确实可以。

希望有帮助。