输入' ElementRef'不是通用的

时间:2018-04-18 12:24:01

标签: angular angular5 angular2-template angular2-forms angular2-services

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

  

此行中的错误

_inputElement: ElementRef<HTMLInputElement>;
constructor(toggleGroup: MatButtonToggleGroup, _changeDetectorRef: ChangeDetectorRef, _elementRef: ElementRef<HTMLInputElement>, _focusMonitor: FocusMonitor);

2 个答案:

答案 0 :(得分:17)

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

  

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

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

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

然后,当我运行ng s时,一切都按预期工作。

答案 1 :(得分:12)

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

解决方案:

  1. 将Angular Material降级为Angular的相同主要版本(例如.v5.x.x)
  2. 将Angular和Material升级到最新的RC版本和边缘的现场生活。 (例如,v6.x.x RCx)
  3. PS:他们在2018年ng-conf上宣布,从版本6开始,Angular,Angular Material和Angular CLI的所有版本号将保持同步,因此了解什么与兼容性将更容易,希望你赢了'再次遇到这个问题。