Angular CLI测试和枚举

问题描述 投票:1回答:1

我正在努力使用Angular CLI的测试框架和枚举类型。我正在创建一个这样的枚举(在一些枚举中):

const enum SomeEnum {
  Val0,
  Val1
}

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

private someEnum = SomeEnum.Val0;

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

this.someEnum = 0 /* Val0 */;

它应该是怎样的。

但是,当我尝试使用ng test执行测试时,它会因编译错误而失败:

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

我认为这个问题与测试环境的打字稿配置有关,但我无法弄清楚,有人对此有一个很好的解释吗?

angular angular-cli karma-jasmine
1个回答
0
投票

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

languageEnums.ts

export const enum Languages {
  ENGLISH = "en-US",
  SWEDISH = "sv-SE"
}

app.component.ts

import { Languages } from '../assets/constants';

...

private language = Languages.ENGLISH; 

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

之后错误在哪里修复。

© www.soinside.com 2019 - 2024. All rights reserved.