Angular2到Angular4更新错误

时间:2017-04-03 03:07:05

标签: angular

我已将angular2更新为当前版本,但我收到以下错误:似乎茉莉索引文件中存在问题。

  

[默认]中的错误C:\ src \ Angular2 \ BuyPracticeTest_AV4 \ node_modules \ @types \ jasmine \ index.d.ts:40:37   参数初始值设定项仅允许在函数或构造函数实现中使用。

     

错误在[默认] C:\ src \ Angular2 \ BuyPracticeTest_AV4 \ node_modules \ @types \ jasmine \ index.d.ts:40:45   找不到名称' keyof'。

     

[默认]中的错误C:\ src \ Angular2 \ BuyPracticeTest_AV4 \ node_modules \ @types \ jasmine \ index.d.ts:40:51   ' ='预期

     

[默认]中的错误C:\ src \ Angular2 \ BuyPracticeTest_AV4 \ node_modules \ @types \ jasmine \ index.d.ts:42:45   参数初始值设定项仅允许在函数或构造函数实现中使用。

     

[默认]中的错误C:\ src \ Angular2 \ BuyPracticeTest_AV4 \ node_modules \ @types \ jasmine \ index.d.ts:42:55   找不到名称' keyof'。

     

[默认]中的错误C:\ src \ Angular2 \ BuyPracticeTest_AV4 \ node_modules \ @types \ jasmine \ index.d.ts:42:61   ' ='预期

     

[默认]中的错误C:\ src \ Angular2 \ BuyPracticeTest_AV4 \ node_modules \ @types \ jasmine \ index.d.ts:58:41   找不到姓名'部分'。

     

[默认]中的错误C:\ src \ Angular2 \ BuyPracticeTest_AV4 \ node_modules \ @types \ jasmine \ index.d.ts:99:21   找不到姓名'部分'。

     

[默认]中的错误C:\ src \ Angular2 \ BuyPracticeTest_AV4 \ node_modules \ @types \ jasmine \ index.d.ts:99:34   找不到姓名'部分'。

这是我的package.json文件:

{
  "name": "buy-practice-test",
  "version": "0.0.0",
  "license": "MIT",
  "angular-cli": {},
  "scripts": {
    "start": "ng serve",
    "lint": "tslint \"src/**/*.ts\"",
    "test": "ng test",
    "pree2e": "webdriver-manager update",
    "e2e": "protractor"
  },
  "private": true,
  "dependencies": {
    "@angular/common": "^2.4.10",
    "@angular/compiler": "^2.4.10",
    "@angular/core": "^2.4.10",
    "@angular/forms": "^2.4.10",
    "@angular/http": "^2.4.10",
    "@angular/platform-browser": "^2.4.10",
    "@angular/platform-browser-dynamic": "^2.4.10",
    "@angular/router": "^3.4.10",
    "angular2-datatable": "^0.5.3",
    "core-js": "^2.4.1",
    "ng2-pagination": "^0.5.1",
    "ng2-table": "^1.3.2",
    "rxjs": "5.0.0-beta.12",
    "ts-helpers": "^1.1.1",
    "zone.js": "^0.6.23"
  },
  "devDependencies": {
    "@types/jasmine": "^2.5.47",
    "@types/node": "^6.0.68",
    "angular-cli": "1.0.0-beta.18",
    "codelyzer": "1.0.0-beta.1",
    "jasmine-core": "2.4.1",
    "jasmine-spec-reporter": "2.5.0",
    "karma": "1.2.0",
    "karma-chrome-launcher": "^2.0.0",
    "karma-cli": "^1.0.1",
    "karma-jasmine": "^1.0.2",
    "karma-remap-istanbul": "^0.2.1",
    "protractor": "4.0.9",
    "ts-node": "1.2.1",
    "tslint": "3.13.0",
    "typescript": "~2.0.3"
  }
}

1 个答案:

答案 0 :(得分:1)

keyof在Typescript 2.1中引入,在你的package.json中我看到了Typescript 2.0.3。

不幸的是,@ angular-cli / ast-tools @ 1.0.16依赖于typescript 2.0.10,因此您可能无法升级到最新的打字稿版本(2.2.2)。但是,您可以降级茉莉花或@ types / jasmine。

我建议您以较小的步骤升级。即使用npm outdated根据所有依赖项查看可以升级到的版本。一次升级几个库 - 定期检查以确保没有损坏任何东西。在升级完所有内容之后,将@angular升级到4.0。