类型'ElementRef'不是通用的

Nae*_*eem 13 angular2-forms angular2-template angular2-services angular angular5

我正在使用Angular 5中的Material Component处理一个项目.我确实更新了我的Visual代码,但我不知道发生了什么.我正面临一个问题"类型'ElementRef'不是通用的." 从早上起我一直坚持这个问题.

这一行出错

_inputElement: ElementRef<HTMLInputElement>;
constructor(toggleGroup: MatButtonToggleGroup, _changeDetectorRef: ChangeDetectorRef, _elementRef: ElementRef<HTMLInputElement>, _focusMonitor: FocusMonitor);
Run Code Online (Sandbox Code Playgroud)

Sib*_*enu 19

ng-bootstrap在Angular 5应用程序中遇到了与上面相同的错误.

node_modules/@ng-bootstrap/ng-bootstrap/buttons/radio.d.ts(58,96)中的错误:错误TS2315:类型'ElementRef'不是通用的.

我在有2.1.0版本package.json"@ng-bootstrap/ng-bootstrap": "^2.1.0"

似乎版本2.1.0在更高版本中受支持,因此决定将我的软件包降级ng-bootstrap"@ng-bootstrap/ng-bootstrap": "^1.1.0"

然后,当我跑步时ng s,一切都按预期工作.


Cha*_*arl 13

我认为问题可能是你使用Angular Material 6但仍然是Angular 5然后你会得到这个错误.当安装Angular Material 6 RC 12时,它正在寻找Angular 6 Beta 0的同伴依赖,而我有一个Angular 5.xx版本.

解:

  1. 将Angular Material降级为Angular的相同主要版本(例如v5.xx)
  2. 将Angular和Material升级到最新的RC版本和边缘的现场生活.(例如,v6.xx RCx)

PS:他们在ng-conf 2018上宣布,从版本6开始,Angular,Angular Material和Angular CLI的所有版本号将保持同步,因此了解什么和兼容性将更容易,希望你不会有这个问题了.