Ошибка TS2315: Тип "ElementRef" не является общим материалом, угловым
ОШИБКА в node_modules/@angular/material/button-toggle/typings/button-toggle.d.ts(136,20):
ошибка TS2315: Тип ElementRef не является общим.
node_modules/@angular/material/button-toggle/typings/button-toggle.d.ts(154,104):
ошибка TS2315: Тип ElementRef не является общим
Я пытаюсь установить материал, но похоже, что это ошибка.
ДАННЫЕ:
Angular CLI: 1.7.4
Node: 9.11.1
Ответы
Ответ 1
Лучший способ здесь - изменить все ваши материальные зависимости в соответствии с угловыми для тех из вас, у кого есть угловой 5.2.0, следуйте этому
ИСХОДНЫЙ
"dependencies": {
"@angular/core": "^5.2.0",
"@angular/cdk": "^6.0.1",
"@angular/material": "^6.0.1"
}
просто измените их на любую текущую версию других угловых компонентов.
ЗАВЕРШЕНИЕ
"dependencies": {
"@angular/core": "^5.2.0",
"@angular/cdk": "^5.2.0",
"@angular/material": "^5.2.0"
}
npm install
Ответ 2
Это происходит, когда вся ваша угловая упаковка в одной версии и пакете материалов в другой версии.
Я столкнулся с этим, когда моя версия углового пакета была 5,2, а материальная версия - 6.0, поэтому я изменил версию материала до 5.1 и проблема исправлена.
Ответ 3
У меня были те же проблемы, но с понижением моего @углового/материала до версии 5.0. Вы можете попробовать это.
Ответ 4
Хорошо, вот как я его исправил: Шаг первый:
- запустить
npm update -D
и npm update -S
Но я не думаю, что это было необходимо, потому что проблема была там.
Шаг:
npm install -g @angular/[email protected]
ng update
Команда жаловалась, что мне нужно бежать (так я и сделал):
ng update @angular/cli
После попытки: ng serve
я получил ошибку, так как "hammerjs" не был установлен, поэтому я запускаю (но это может быть не так):
npm install hammerjs --save
и npm install @types/hammerjs --Save-Dev
Я не понимаю смысла - -S ave -D ev, но я сделал это таким образом. Его компиляция сейчас.
Эта последняя вещь hammerjs была найдена здесь: Модуль не найден: Ошибка: не удается разрешить "hammerjs"
Надеюсь, это поможет.
Ответ 5
Эта ошибка возникает, когда есть несоответствие в вашей угловой версии и версии материала. Чтобы увидеть ошибку, перейдите в файл package.json, где вы можете найти угловую версию и версию материала.
"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"}
},
Как вы можете видеть в вышеупомянутом файле package.json, существует несоответствие версии. Существует два способа решить эту ошибку:
- Обновите свой угол с помощью команды: ng update (это изменит ваш угловой стиль на 6.x).
- Измените версию cdk и материала на 5.2.0 вручную, затем введите команду: npm install this добавит материал версии 5.2.0
Ответ 6
Может быть, это связано с угловым 1.6, который только что вышел?
У меня такая же проблема, но я просто не могу понять, как обновить ее (вместо того, чтобы понизить одну вещь, обновить все остальное), но я не могу понять это.
npm update -D
и npm update -S
Но это не помогло.
Эта идея исходила из: я новичок в угловой. Я только что установил угловой материал и угловые анимации в моем маленьком проекте и получил некоторые из ошибок