【问题标题】:Angular CLI tests and enumsAngular CLI 测试和枚举
【发布时间】:2018-05-15 19:53:44
【问题描述】:

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

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】:

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

    languageEnums.ts

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

    app.component.ts

    import { Languages } from '../assets/constants';
    
    ...
    
    private language = Languages.ENGLISH; 
    

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

    在那之后修复了错误。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-24
      相关资源
      最近更新 更多