Angular 5 ng-bootstrap Тип ElementRef не является общей ошибкой

Я использую angular 5 и ng-bootstrap в этих версиях:

  "private": true,
  "dependencies": {
    "@angular/animations": "^5.2.0",
    "@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/platform-browser": "^5.2.0",
    "@angular/platform-browser-dynamic": "^5.2.0",
    "@angular/router": "^5.2.0",
    "@ng-bootstrap/ng-bootstrap": "^2.1.0",
    "angular-in-memory-web-api": "^0.5.4",
    "angular2-moment": "^1.9.0",
    "bootstrap": "^4.1.1",
    "core-js": "^2.4.1",
    "date-util": "^1.2.1",
    "material-icons": "^0.2.1",
    "ngx-bootstrap": "^3.0.0",
    "normalize.css": "^8.0.0",
    "rxjs": "^5.5.6",
    "zone.js": "^0.8.19"
  },

когда я получаю ng serve, появляется эта ошибка:

**

Failed to compile.

node_modules/@ng-bootstrap/ng-bootstrap/buttons/radio.d.ts(58,96): error TS2315: Type 'ElementRef' is not generic. node_modules/@ng-bootstrap/ng-bootstrap/datepicker/datepicker-input.d.ts(121,67): error TS2315: Type 'ElementRef' is not generic. node_modules/@ng-bootstrap/ng-bootstrap/datepicker/datepicker.d.ts(115,208): error TS2315: Type 'ElementRef' is not generic. node_modules/@ng-bootstrap/ng-bootstrap/dropdown/dropdown.d.ts(12,45): error TS2315: Type 'ElementRef' is not generic. node_modules/@ng-bootstrap/ng-bootstrap/dropdown/dropdown.d.ts(29,45): error TS2315: Type 'ElementRef' is not generic. node_modules/@ng-bootstrap/ng-bootstrap/dropdown/dropdown.d.ts(37,44): error TS2315: Type 'ElementRef' is not generic. node_modules/@ng-bootstrap/ng-bootstrap/modal/modal-window.d.ts(13,40): error TS2315: Type 'ElementRef' is not generic.

Какую версию Typescript вы используете? Последняя версия 2.9.1.

Lynx 242 10.06.2018 06:56
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
17
1
19 696
6

Ответы 6

Я внезапно столкнулся с той же проблемой.

В моем случае я использовал ng-boostrasp 2.0.0, но я указывал зависимости следующим образом:

"@ng-bootstrap/ng-bootstrap": "^2.0.0"

Который в какой-то момент (на основе журналов прошлых успешных сборок: где-то с 1 июня) начал собирать версию 2.1.0.

Поэтому я изменил свой package.json, выбрав именно 2.0.0:

"@ng-bootstrap/ng-bootstrap": "2.0.0"

Это устранило проблему от меня.

Измените версию ng-bootstrap на "2.0.0"

"@ng-bootstrap/ng-bootstrap": "2.0.0"

а затем npm install и попробуйте обслужить приложение.

Я столкнулся с той же проблемой, и вышеуказанный метод сработал для меня.

Я была такая же проблема. Итак, я удалил ng-bootstrap.

Затем я переустанавливаю его напрямую с версией 2.0.0.

npm install --save @ng-bootstrap/[email protected]

Просто быть чистым; точная команда для удаления: npm удалить @ ng-bootstrap / ng-bootstrap. Кстати, обратите внимание, что установка по-прежнему предупреждает об угловой версии, но после установки она работает.

Oscar Bravo 15.06.2018 15:33

Вам нужно использовать Angular 6.0.0 или новее с ng-bootstrap> = 2.0.0. npm / yarn install должен был выдать вам предупреждение во время установки.

Возврат к ng-bootstrap 2.0.0 - это решение нет, поскольку вы просто застрянете с этой версией библиотеки и не будете получать обновления / исправления.

Чтобы правильно решить эту проблему, вам необходимо:

  • обновить Angular до версии 6.0.0 или новее (рекомендуется)
  • используйте поздний ng-bootstrap, все еще совместимый с Angular 5.x (1.1.2)

Для angular 5 я рекомендую использовать команду: npm install --save @ ng-bootstrap / ng-bootstrap @ 2.0.0

Max Alexander Hanna 04.01.2019 18:18

После установки последней версии ng- bootstrap, которая показывала ошибку на serve.

Наконец, сделав это

npm install --save @ng-bootstrap/[email protected]

помогло.

Установите ng-bootstrap, проверяя совместимость версий.

ng-bootstrap    Angular  Bootstrap CSS
1.x.x             5.0.2   4.0.0
2.x.x             6.0.0   4.0.0
3.x.x             6.1.0   4.0.0
4.x.x             7.0.0   4.0.0
5.x.x             8.0.0   4.3.1 

Вы можете найти подробную информацию о версии на вкладке версий здесь, https://www.npmjs.com/package/@ng-bootstrap/ng-bootstrap

Другие вопросы по теме