简体   繁体   English

Angular 5 ng-bootstrap Type 'ElementRef' 不是通用的错误

[英]Angular 5 ng-bootstrap Type 'ElementRef' is not generic err

I use angular 5 and ng-bootstrap in these versions:我在这些版本中使用 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"
  },

when I get ng serve has this error:当我收到 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/buttons/radio.d.ts(58,96): 错误 TS2315: 类型 'ElementRef' 不是通用的。 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-input.d.ts(121,67): 错误 TS2315: 类型 'ElementRef' 不是通用的。 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/datepicker/datepicker.d.ts(115,208): 错误 TS2315: 类型 'ElementRef' 不是通用的。 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(12,45): 错误 TS2315: 类型 'ElementRef' 不是通用的。 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(29,45): 错误 TS2315: 类型 'ElementRef' 不是通用的。 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/dropdown/dropdown.d.ts(37,44): 错误 TS2315: 类型 'ElementRef' 不是通用的。 node_modules/@ng-bootstrap/ng-bootstrap/modal/modal-window.d.ts(13,40): error TS2315: Type 'ElementRef' is not generic. node_modules/@ng-bootstrap/ng-bootstrap/modal/modal-window.d.ts(13,40): 错误 TS2315: 类型 'ElementRef' 不是通用的。

I had the same issue.我遇到过同样的问题。 So I unistalled the ng-bootstrap .所以我卸载了ng-bootstrap

Then I reinstall it directly whit 2.0.0 version.然后我直接用2.0.0版本重新安装它。

npm install --save @ng-bootstrap/ng-bootstrap@2.0.0

You need to use Angular 6.0.0 or later with ng-bootstrap >= 2.0.0.您需要在 ng-bootstrap >= 2.0.0 的情况下使用 Angular 6.0.0 或更高版本。 npm / yarn install should have given you warning during installation. npm / yarn install 应该在安装过程中给你警告。

Reverting to ng-bootstrap 2.0.0 is not a solution as you will simply be stuck with this version of a library and won't receive updates / fixes.恢复到 ng-bootstrap 2.0.0不是一个解决方案,因为您将被困在这个版本的库中,并且不会收到更新/修复。

To properly resolve this issue you need to either:要正确解决此问题,您需要:

  • upgrade Angular to version 6.0.0 or later (recommended)将 Angular 升级到 6.0.0 或更高版本(推荐)
  • use lates ng-bootstrap still compatible with Angular 5.x (1.1.2)使用仍然与 Angular 5.x (1.1.2) 兼容的 lates ng-bootstrap

Change your ng-bootstrap version to "2.0.0"将您的 ng-bootstrap 版本更改为“2.0.0”

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

and then npm install & try serve the application.然后npm install并尝试为应用程序提供服务。

I faced the same issue and above method worked for me.我遇到了同样的问题,上述方法对我有用。

I am suddenly facing the same issue.我突然面临同样的问题。

In my case I was using ng-boostrasp 2.0.0, but I was specifying dependencies this way:就我而言,我使用的是 ng-boostasp 2.0.0,但我以这种方式指定了依赖项:

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

Which at some point in time (based on logs from past successful builds : somewhere since june the 1st) started to pickup version 2.1.0.在某个时间点(基于过去成功构建的日志:自 6 月 1 日以来的某个地方)开始获取 2.1.0 版。

So I changed my package.json to pick exactly 2.0.0:所以我改变了我的 package.json 来选择 2.0.0:

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

This fixed the problem from me.这解决了我的问题。

After installing the latest ng- bootstrap which showed an error on serve.安装最新的 ng-bootstrap 后,在服务上显示错误。

Finally, doing this最后,这样做

npm install --save @ng-bootstrap/ng-bootstrap@2.0.0

helped.有帮助。

Install ng-bootstrap checking the version compatibility.安装 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 

You can find the version details under versions tab here, https://www.npmjs.com/package/@ng-bootstrap/ng-bootstrap您可以在此处的版本选项卡下找到版本详细信息, https://www.npmjs.com/package/@ng-bootstrap/ng-bootstrap

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM