我正在努力使用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'.
我认为这个问题与测试环境的打字稿配置有关,但我无法弄清楚,有人对此有一个很好的解释吗?
我刚遇到同样的问题。您可以通过导出枚举来修复它。例如:
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
文件。
之后错误在哪里修复。