web-dev-qa-db-ja.com

タイプ「ElementRef」はジェネリックではありません

私はAngular 5.のマテリアルコンポーネントを使用してプロジェクトで作業しています。ビジュアルコードを更新しましたが、何が起こったのかわかりません。 「Type 'ElementRef'はジェネリックではありません」という問題に直面しています。朝からこの問題に悩まされています。

この行のエラー

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

問題は、Angular Material 6を使用していてもAngular 5を使用している場合、このエラーが発生する可能性があると思います。 Angular Material 6 RC 12をインストールすると、Angular 5.x.xバージョンを使用しているときに、Angular 6 Beta 0のピア依存関係を探します。

解決:

  1. AngularマテリアルをAngularの同じメジャーバージョンにダウングレードします(例:v5.x.x)
  2. AngularとMaterialを最新のRCバージョンにアップグレードし、Edgeでの生活をしましょう。 (例:v6.x.x RCx)

PS:彼らはng-conf 2018で、Angular、Angular Material、およびAngular CLIのすべてのバージョン番号がバージョン6以降で同期するので、何が何と互換性があるのか​​を知ることを発表しましたずっと簡単になりますし、うまくいけば、この問題は二度と起こらないでしょう。

13
Charl

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を実行すると、すべてが期待どおりに機能していました。

18
Sibeesh Venu