Angular 角度CLI测试和枚举

Angular 角度CLI测试和枚举,angular,angular-cli,karma-jasmine,Angular,Angular Cli,Karma Jasmine,我正在努力学习Angular CLI的测试框架和枚举类型。我正在创建这样的枚举(在someenum.ts中): 并像这样使用它(在app.component.ts中): 如果我使用ng serve运行此代码,它运行正常,生成的js将其定义为: this.someEnum = 0 /* Val0 */; 应该是这样的 但是,当我尝试使用ng test执行测试时,由于编译器错误而失败: ERROR in src/app/app.component.ts(10,14): error TS2304:

我正在努力学习Angular CLI的测试框架和枚举类型。我正在创建这样的枚举(在someenum.ts中):

并像这样使用它(在app.component.ts中):

如果我使用
ng serve
运行此代码,它运行正常,生成的js将其定义为:

this.someEnum = 0 /* Val0 */;
应该是这样的

但是,当我尝试使用
ng test
执行测试时,由于编译器错误而失败:

ERROR in src/app/app.component.ts(10,14): error TS2304: Cannot find name 'SomeEnum'.

我认为问题出在测试环境的typescript配置上,但我不明白,有人对此有很好的解释吗?

我也有同样的问题。 您可以通过导出枚举来修复它。 例如:

languageEnums.ts

应用程序组件.ts

我在
assets
文件夹中创建了一个新的
constants
文件夹,其中包含所有枚举。 每个文件一个枚举 您不需要将它们导入到
app.module.ts
.spec
文件中

在此之后,错误将被修复

this.someEnum = 0 /* Val0 */;
ERROR in src/app/app.component.ts(10,14): error TS2304: Cannot find name 'SomeEnum'.
export const enum Languages {
  ENGLISH = "en-US",
  SWEDISH = "sv-SE"
}
import { Languages } from '../assets/constants';

...

private language = Languages.ENGLISH;