web-dev-qa-db-fra.com

Le type 'ElementRef' n'est pas générique

Je travaille avec un projet utilisant Material Component dans Angular 5.). J'ai mis à jour mon code visuel, mais je ne sais pas ce qui s'est passé. Je suis confronté à un problème. "Le type 'ElementRef' n'est pas générique. "Je suis bloqué sur cette question depuis le matin.

Erreur dans cette ligne

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

Je pense que le problème pourrait être si vous utilisez Angular Material 6 mais toujours Angular 5, vous obtiendrez alors cette erreur. Lors de l'installation de Angular Material 6 RC 12, il recherche une dépendance entre homologues pour Angular 6 Beta 0 alors que j'avais une version Angular 5.x.x.

Solution:

  1. Rétrograder Angular Matériau vers la même version majeure de Angular (par exemple, v5.x.x)
  2. Mettez à niveau Angular et Material à la dernière version de RC et vivez la vie à la limite. (par exemple, v6.x.x RCx)

PS: Ils ont annoncé à la conférence de presse 2018 qu'à partir de la version 6, tous les numéros de version pour Angular, Angular Material et Angular CLI resteraient synchronisés afin de savoir ce qui allait avec quoi et avec la compatibilité. Ce sera beaucoup plus facile et j'espère que vous ne rencontrerez plus ce problème.

13
Charl

J'obtenais la même erreur que ci-dessus dans ng-bootstrap dans mon Angular 5.

ERREUR dans node_modules/@ng-bootstrap/ng-bootstrap/buttons/radio.d.ts (58,96): erreur TS2315: le type 'ElementRef' n'est pas générique.

J'avais la version 2.1.0 dans mon package.json comme "@ng-bootstrap/ng-bootstrap": "^2.1.0"

Il semble que la version 2.1.0 soit prise en charge dans les versions ultérieures. J'ai donc décidé de rétrograder mon paquet ng-bootstrap à "@ng-bootstrap/ng-bootstrap": "^1.1.0"

Et puis, quand je cours ng s, tout fonctionnait comme prévu.

18
Sibeesh Venu