Angular 角度CLI测试和枚举
我正在努力学习Angular CLI的测试框架和枚举类型。我正在创建这样的枚举(在someenum.ts中): 并像这样使用它(在app.component.ts中): 如果我使用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:
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;