web-dev-qa-db-fra.com

Erreur TS2315: Le type 'ElementRef' n'est pas un matériau générique angular

ERREUR dans node_modules/@angular/material/button-toggle/typings/button-toggle.d.ts (136,20):

erreur TS2315: Le type 'ElementRef' n'est pas générique.

node_modules/@angular/material/button-toggle/typings/button-toggle.d.ts (154,104):

erreur TS2315: le type 'ElementRef' n'est pas générique

J'essaie d'installer du matériel, mais il semble que ce soit une erreur.

LES DONNÉES:

Angular CLI: 1.7.4
Node: 9.11.1
15
Nilson Nieto

Le meilleur moyen ici est de changer toutes vos dépendances matérielles pour qu'elles correspondent à celle de angular pour ceux d'entre vous qui ont angular 5.2.0 suivez ceci

INITIALE

"dependencies": {
  "@angular/core": "^5.2.0",
  "@angular/cdk": "^6.0.1",
  "@angular/material": "^6.0.1"    
}

changez-les simplement quelle que soit la version actuelle des autres angular).

FINAL

"dependencies": {
  "@angular/core": "^5.2.0",
  "@angular/cdk": "^5.2.0",
  "@angular/material": "^5.2.0"    
}

Alors fais npm install

27
moze king

Cela se produit lorsque tous vos angular packagages dans une version et pack matériel dans une autre version.

J'y ai fait face lorsque ma version du package angular était 5.2 et la version matérielle était 6.0]. J'ai donc modifié la version matérielle en 5.1 et le problème est résolu.

8
John Nero

OK, voici comment je l'ai corrigé: Première étape:

  • courir npm update -D et npm update -S Mais je ne pense pas que cela était nécessaire, car le problème était toujours là.

Étape de remorquage:

npm install -g @angular/cli@latest
ng update

La commande s'est plainte que je devais courir (je l'ai donc fait):

ng update @angular/cli

Après avoir essayé: ng serve J'ai une erreur car 'hammerjs' n'a pas été installé, alors je lance (mais ce n'est peut-être pas votre cas):

npm install hammerjs --save

et npm install @types/hammerjs --save-dev

Je ne comprends pas l'intérêt de --save-dev, mais je l'ai fait comme ça. Sa compilation maintenant.

Cette dernière chose hammerjs a été trouvée ici: module non trouvé: erreur: impossible de résoudre 'hammerjs'

J'espère que cette aide.

4
yehuda mazal

Les mêmes problèmes se posaient, mais la mise à niveau de @ angular/material vers la version 5.0 était efficace. Vous pouvez essayer ça.

3
Hamdalah

Cette erreur se produit en cas d'incompatibilité entre votre version angular et version matérielle. Pour voir l'erreur, accédez au fichier package.json où vous pouvez trouver le angular version et la version matérielle.

  "dependencies": {
"@angular/animations": "^5.2.0",
"@angular/cdk": "^6.2.1",              //ERROR here the version is 6.x
"@angular/common": "^5.2.0",
"@angular/compiler": "^5.2.0",
"@angular/core": "^5.2.0",
"@angular/forms": "^5.2.0",
"@angular/http": "^5.2.0",
"@angular/material": "^6.2.1",         // ERROR here the material version is 6.x
"@angular/platform-browser": "^5.2.0",
"@angular/platform-browser-dynamic": "^5.2.0",
"@angular/router": "^5.2.0",
"core-js": "^2.4.1",
"hammerjs": "^2.0.8",
"rxjs": "^5.5.6",
"zone.js": "^0.8.19"}

},

Comme vous pouvez le constater dans le fichier package.json ci-dessus, la version ne correspond pas. Il y a deux façons de résoudre cette erreur:

  1. Mettez à niveau votre angular en utilisant la commande: ng update (), cela changera votre angular versio à 6.x ).
  2. Modifiez la version de cdk et du matériel en 5.2.0 manuellement puis entrez la commande suivante: npm install, le matériel de la version 5.2 sera ajouté. .0
1
ajay verma