Angular 编译器 - 预期没有成员的符号

Angular compiler - Symbol without members expected

目前这似乎是一个很常见的问题。请参阅 herehere.

这个枚举为我抛出异常:

export enum UserRole {
  CareGiver = 0,
  CareReceiver = 1
}

错误是:

ERROR in Illegal state: symbol without members expected, but got {"filePath":"C:/Users/William-Work/Desktop/findchildcare/src/app/shared/enums/user_role_enum.ts","
le","members":["CareGiver"]}.

ERROR in ./src/main.ts
Module not found: Error: Can't resolve './$$_gendir/app/components/app/app.module.ngfactory' in 'C:\Users\William-Work\Desktop\findchildcare\src'
 @ ./src/main.ts 3:0-89
 @ multi ./src/main.ts

有人可以澄清一下 Angular 是否支持我的枚举声明吗?

有人可以解决这个问题吗?

我的 package.json 包含:

"@angular/animations": "^4.1.3",
    "@angular/common": "^4.1.3",
    "@angular/compiler": "^4.1.3",
    "@angular/core": "^4.1.3",
    "@angular/forms": "^4.1.3",
    "@angular/http": "^4.1.3",
"@angular/platform-browser": "^4.1.3",
    "@angular/platform-browser-dynamic": "^4.1.3",
"@angular/cli": "^1.1.2",
    "@angular/compiler-cli": "^4.1.3",
    "@angular/language-service": "^4.1.3",

我也试过这个 4.0.0 和 4.3.0,同样的问题。

正如 janousek 在 here 中提到的那样,由于 angular 中的这段代码而发生错误:

// Stop simplification at builtin symbols or if we are in a reference context
if (expression === self.injectionToken || expression === self.opaqueToken ||
    self.conversionMap.has(expression) || references > 0) {
    return expression;
}

修复将降级到 4.2.X 版本,例如4.2.6