web-dev-qa-db-fra.com

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

J'essaie d'utiliser @ angular/materials dans mon application et sa compilation est réussie, mais l'erreur suivante s'affiche: 

webpack: Compiled successfully.
ERROR in node_modules/@angular/material/button-toggle/typings/button-toggle.d.ts(136,20): error TS2315: Type 'ElementRef' is not generic.
node_modules/@angular/material/button-toggle/typings/button-toggle.d.ts(154,104): error TS2315: Type 'ElementRef' is not generic.
node_modules/@angular/material/slide-toggle/typings/slide-toggle.d.ts(53,15): error TS2315: Type 'ElementRef' is not generic.
node_modules/@angular/material/slide-toggle/typings/slide-toggle.d.ts(55,18): error TS2315: Type 'ElementRef' is not generic.

Cela ne semble pas être un problème courant. Quelqu'un sait-il comment le résoudre?

En utilisant:

Angular CLI: 1.7.4
Node: 8.11.1
OS: win32 x64
Angular: 5.2.10
... animations, common, compiler, compiler-cli, core, forms
... http, language-service, platform-browser
... platform-browser-dynamic, router

@angular/cdk: 6.0.0-rc.14-29bf024
@angular/cli: 1.7.4
@angular/material: 6.0.0-rc.14-29bf024
@angular-devkit/build-optimizer: 0.3.2
@angular-devkit/core: 0.3.2
@angular-devkit/schematics: 0.3.2
@ngtools/json-schema: 1.2.0
@ngtools/webpack: 1.10.2
@schematics/angular: 0.3.2
@schematics/package-update: 0.3.2
TypeScript: 2.5.3
webpack: 3.11.0
6
MRDJR97

Vous utilisez les versions @angular/material et @angular/cdk 6RC (6.0.0-rc.14-29bf024), qui dépendent probablement de la version angulaire 6.

Vous pouvez soit rétrograder le package @angular/material vers la dernière version stable (si vous construisez directement pour la production), soit essayer de mettre à niveau angular vers la version 6.0.0-rc.6 (si vous visez votre publication après la sortie de la version angulaire 6 stable).

11
kvetis
npm uninstall @angular/material  --save
npm install @angular/[email protected] --save

Cela a fonctionné pour moi.

La version angulaire est 5.2.1.

10
BittuS

C'est un problème de dépendances , il est nécessaire de réinstaller les dépendances.

Dans package.json faites correspondre votre version angulaire avec "@ angular/material" , elle devrait être similaire. Puis courir 

npm install 
0
Naresh Singh

Nous avions le même problème. Mettre à niveau Angular à 6 n'est pas encore une option pour nous, car nous avons une dépendance qui ne prend en charge rien de plus que Angular 5 (en train de repenser cette dépendance). Récupérer Material vers la version 5 était une option, mais pas idéale, car la raison pour laquelle nous sommes passés à la version 6 a été corrigée. 

Ce qui a fonctionné pour nous a été de mettre à niveau Node vers 8.10. Je ne sais pas pourquoi cela a résolu le problème, mais c'est ce qui s'est passé.

J'espère que ça aide.

0
jdawg73