【问题标题】:Error TS2315: Type 'ElementRef' is not generic错误 TS2315:类型“ElementRef”不是通用的
【发布时间】:2018-10-12 12:54:13
【问题描述】:

我正在尝试在我的应用程序中使用 @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

【问题讨论】:

  • 更新你的角度版本

标签: angular typescript npm angular-material


【解决方案1】:

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

要么将@angular/material 包降级到最新的稳定版本(如果您直接为生产而构建),或者尝试将angular 升级到6.0.0-rc.6 版本(如果您的目标是在angular 6 stable 发布后发布) .

【讨论】:

  • materialcdk 的默认版本适用于 Angular 6,不适用于 Angular 5。如果不能选择升级 Angular,降级软件包应该可以工作。我做到了:npm install --save @angular/material@5.2.4npm install --save @angular/cdk@5.2.4。 (我觉得material和cdk的最新版本5的都是5.2.4只是一个巧合)。
  • 我不认为这是巧合,因为它们是一起开发的。
【解决方案2】:

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

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

npm install 

【讨论】:

    【解决方案3】:
    npm uninstall @angular/material  --save
    npm install @angular/material@5.2.4 --save
    

    它对我有用。

    Angular 版本是5.2.1

    【讨论】:

    • 如果有人使用 sdk 和动画,那么也将他们的版本安装为 5.2.1。
    【解决方案4】:

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

    对我们有用的是将 Node 升级到 8.10。我不确定为什么会解决它,但它确实解决了。

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 2018-10-06
      • 2018-11-19
      • 2018-09-28
      • 1970-01-01
      • 2020-08-18
      • 2021-06-21
      • 1970-01-01
      • 2018-09-29
      • 1970-01-01
      相关资源
      最近更新 更多