TS2300:重复的标识符“路由器”

时间:2019-06-19 16:15:11

标签: angular typescript

将我的角度项目从7升级到8后,出现以下错误:

  

node_modules/@angular/router/router.d.ts(1817,22)中的错误:错误TS2300:标识符“ Router”重复

这是我的tsconfig.json

  {
"compileOnSave": false,
"compilerOptions": {
  "baseUrl": "src",
  "downlevelIteration": true,
  "module": "esnext",
  "paths": {
    "core-js/es7/reflect": [
      "node_modules/core-js/proposals/reflect-metadata"
    ],
    "@app/*": [
      "app/*"
    ],
    "@app/core/*": [
      "app/core/*"
    ],
    "@app/shared/*": [
      "app/shared/*"
    ]
  },
  "outDir": "./dist/out-tsc",
  "sourceMap": true,
  "declaration": false,
  "moduleResolution": "node",
  "emitDecoratorMetadata": true,
  "experimentalDecorators": true,
  "target": "es2015",
  "typeRoots": [
    "node_modules/@types"
  ],
  "lib": [
    "es2017",
    "dom"
  ]
}
}

更新:

我删除了node_modules文件夹, 运行npm cache clean --force,从项目中删除package-lock.json并再次进行npm安装。 我仍然有这个错误

这是我的package.json

  {
"name": "start-ng",
"version": "2.2.0",
"license": "MIT",
"scripts": {
  "ng": "ng",
  "start": "ng serve",
  "build": "ng build",
  "test": "ng test",
  "lint": "ng lint",
  "develop": "node --max_old_space_size=8192 node_modules/@angular/cli/bin/ng  build --prod",
  "prod": "node --max_old_space_size=8192 node_modules/@angular/cli/bin/ng  build --prod --configuration=production",
  "stage": "node --max_old_space_size=8192 node_modules/@angular/cli/bin/ng  build --prod --configuration=staging",
  "e2e": "ng e2e",
  "compile:server": "webpack --config webpack.server.config.js --progress --colors",
  "serve:ssr": "node dist/server",
  "build:ssr": "npm run build:client-and-server-bundles && npm run compile:server",
  "build:client-and-server-bundles": "node --max_old_space_size=8192  node_modules/@angular/cli/bin/ng  build --prod --configuration=production && node --max_old_space_size=8192  node_modules/@angular/cli/bin/ng run careandcarers:server:production"
},
"private": true,
"dependencies": {
  "@agm/core": "^1.0.0-beta.6",
  "@angular/animations": "^8.0.1",
  "@angular/common": "^8.0.1",
  "@angular/compiler": "^8.0.1",
  "@angular/core": "^8.0.1",
  "@angular/forms": "^8.0.1",
  "@angular/platform-browser": "^8.0.1",
  "@angular/platform-browser-dynamic": "^8.0.1",
  "@angular/platform-server": "^8.0.1",
  "@angular/router": "^8.0.1",
  "@aspnet/signalr": "^1.1.4",
  "@nguniversal/express-engine": "^7.1.1",
  "@nguniversal/module-map-ngfactory-loader": "7.1.1",
  "@ngx-progressbar/core": "^5.3.2",
  "@ngx-progressbar/http": "^5.3.2",
  "@ngx-progressbar/router": "^5.3.2",
  "@progress/kendo-angular-buttons": "^4.4.2",
  "@progress/kendo-angular-dateinputs": "3.7.4",
  "@progress/kendo-angular-dropdowns": "^3.5.6",
  "@progress/kendo-angular-excel-export": "2.4.0",
  "@progress/kendo-angular-grid": "^3.14.4",
  "@progress/kendo-angular-inputs": "5.2.2",
  "@progress/kendo-angular-intl": "^1.7.1",
  "@progress/kendo-angular-l10n": "^1.4.1",
  "@progress/kendo-angular-popup": "^2.6.0",
  "@progress/kendo-angular-upload": "^4.3.2",
  "@progress/kendo-data-query": "^1.5.1",
  "@progress/kendo-drawing": "^1.5.12",
  "@progress/kendo-theme-default": "latest",
  "@swimlane/ngx-charts": "^12.0.1",
  "agm-direction": "^0.7.8",
  "angular-l10n": "^8.0.0",
  "angular2-navigate-with-data": "^1.1.11",
  "angular2-text-mask": "^9.0.0",
  "bootstrap": "^4.3.1",
  "classlist.js": "^1.1.20150312",
  "core-js": "^3.1.4",
  "domino": "^2.1.3",
  "express": "^4.17.1",
  "file-saver": "^2.0.2",
  "font-awesome": "^4.7.0",
  "intl": "1.2.5",
  "jquery": "3.4.1",
  "jwt-decode": "^2.2.0",
  "moment": "^2.24.0",
  "ng-block-ui": "^2.1.5",
  "ng-circle-progress": "^1.4.1",
  "ng2-ckeditor": "^1.2.3",
  "ngx-bar-rating": "^1.1.0",
  "ngx-bootstrap": "^4.3.0",
  "ngx-captcha": "^7.0.0",
  "ngx-chips": "^2.0.2",
  "ngx-infinite-scroll": "^7.2.0",
  "ngx-perfect-scrollbar": "8.0.0",
  "ngx-toastr": "^10.0.4",
  "popper.js": "1.15.0",
  "reflect-metadata": "^0.1.13",
  "rxjs": "^6.5.2",
  "rxjs-compat": "^6.5.2",
  "sweetalert2": "^8.12.1",
  "undefined": "^0.1.0",
  "web-animations-js": "github:angular/web-animations-js#release_pr208",
  "zone.js": "~0.9.1"
},
"devDependencies": {
  "@angular-devkit/build-angular": "~0.800.3",
  "@angular-devkit/build-ng-packagr": "~0.800.3",
  "@angular/cli": "^8.0.3",
  "@angular/compiler-cli": "^8.0.1",
  "@angular/language-service": "^8.0.1",
  "@types/googlemaps": "^3.36.5",
  "@types/jasmine": "^3.3.13",
  "@types/jasminewd2": "^2.0.6",
  "@types/node": "~12.0.8",
  "codelyzer": "^5.1.0",
  "jasmine-core": "~3.4.0",
  "jasmine-spec-reporter": "~4.2.1",
  "karma": "^4.1.0",
  "karma-chrome-launcher": "~2.2.0",
  "karma-coverage-istanbul-reporter": "^2.0.5",
  "karma-jasmine": "^2.0.1",
  "karma-jasmine-html-reporter": "^1.4.2",
  "ng-packagr": "^5.3.0",
  "node-sass": "^4.12.0",
  "protractor": "~5.4.2",
  "ts-loader": "^6.0.3",
  "ts-node": "~8.3.0",
  "tsickle": "^0.35.0",
  "tslib": "^1.10.0",
  "tslint": "~5.17.0",
  "typescript": "^3.4.2",
  "uglify-js": "^3.6.0",
  "webpack-cli": "^3.3.4"
}

}

2 个答案:

答案 0 :(得分:0)

如果您删除了angular2-navigate-with-data软件包,一切都将正常工作。

在删除此程序包以将数据发送到另一个页面后,更改代码:

表格

this.router.navigateByData({ url: , data: data });

this.router.navigateByUrl(url, { state: data });

要获取数据时:

表格

let data = this.router.getNavigatedData();

this.activatedRoute.paramMap.pipe(map(() => window.history.state)).subscribe(data => { let data = data });

答案 1 :(得分:0)

使用TypeScript时,您很有可能迟早要处理“重复标识符”错误。 但是这个错误到底意味着什么?再次阅读错误文本。标识符重复。您在代码中两次定义了相同的标识符(类,方法,属性),换句话说就是引用。

enter image description here