网站搜索

asp.net - (TS) 在 'const' 枚举声明中,成员初始化器必须是常量表达式


我在 Visual Studio 2017 构建应用程序时遇到问题。我使用的是 ASP.NET CORE 2 和 Angular 6。运行应用程序后,我在 node_modules 的文件 output_ast.d.ts 上遇到错误:

(TS) 在 'const' 枚举声明中,成员初始化器必须是常量表达式。

和

构建:在 'const' 枚举声明中,成员初始化器必须是常量表达式。

带错误的代码:

export declare const enum JSDocTagName {
    Desc = "desc",
    Id = "id",
    Meaning = "meaning",
}

我的 package.json

  "name": "client-app",
  "version": "0.0.0",
  "scripts": {
    "ng": "ng",
    "start": "ng serve",
    "build": "ng build",
    "test": "ng test",
    "lint": "ng lint",
    "e2e": "ng e2e"
  },
  "private": true,
  "dependencies": {
    "@angular/animations": "^6.0.0",
    "@angular/common": "^6.0.0",
    "@angular/compiler": "^6.0.0",
    "@angular/core": "^6.0.0",
    "@angular/forms": "^6.0.0",
    "@angular/http": "^6.0.0",
    "@angular/platform-browser": "^6.0.0",
    "@angular/platform-browser-dynamic": "^6.0.0",
    "@angular/router": "^6.0.0",
    "core-js": "^2.5.4",
    "rxjs": "^6.0.0",
    "zone.js": "^0.8.26"
  },
  "devDependencies": {
    "@angular/compiler-cli": "^6.0.0",
    "@angular-devkit/build-angular": "~0.6.1",
    "typescript": "~2.7.2",
    "@angular/cli": "~6.0.1",
    "@angular/language-service": "^6.0.0",
    "@types/jasmine": "~2.8.6",
    "@types/jasminewd2": "~2.0.3",
    "@types/node": "~8.9.4",
    "codelyzer": "~4.2.1",
    "jasmine-core": "~2.99.1",
    "jasmine-spec-reporter": "~4.2.1",
    "karma": "~1.7.1",
    "karma-chrome-launcher": "~2.2.0",
    "karma-coverage-istanbul-reporter": "~1.4.2",
    "karma-jasmine": "~1.1.1",
    "karma-jasmine-html-reporter": "^0.2.2",
    "protractor": "~5.3.0",
    "ts-node": "~5.0.1",
    "tslint": "~5.9.1"
  }
}

应用的创建类似于这篇文章 https://www.codeproject.com/Articles/1245243/How-to-Create-an-App-with-Angular-and-ASP-NET-C ,但是 angular 应用在一个名为 ClientApp 的单独文件夹中。我尝试了不同版本的 ts 和 angular cli,但都没有用。对于这个错误,我该怎么办?

答案#1

在 Visual Studio 中,检查项目属性->TypeScript 构建部分的设置,并确保 TypeScript 版本设置为“使用最新可用版本”或至少是比较新的版本。我怀疑它当前设置的是在 TypeScript 支持字符串枚举之前的版本。

答案#2

我经历了完全相同的情况,似乎是 TypeScript 版本不兼容的问题。与上述建议将 TypeScript 版本更改为“使用最新可用版本”不同,我通过将 TypeScript 版本更改为 2.2 解决了问题。