typescript无法识别导出的枚举

时间:2018-06-03 19:21:27

标签: angular typescript enums

我正在使用TypeScript 2.5.3Angular 5 在这样的单独文件中声明了enum

export enum eUserType {
  Driver = 1,
  Passenger = 2,
  User = 3
}

并在其他ts文件中导入/使用它,如下所示:

import { eUserType } from '../CorrectFilePath/eUserType';
export class ViewsModule { 
  newVariable=eUserType.Driver;
}

虽然intellisense工作正常,但运行时会出现错误:Cannot read property 'Driver' of undefined 我误用了enum还是什么?

更新: 我不知道它是否相关。但是,目标模块是延迟加载的,在那里使用的PreloadingStrategy类(在模块文件以外的文件中声明),我的enum应用于PreloadingStrategy类。

2 个答案:

答案 0 :(得分:3)

这可能不会帮助你解决当前的问题(你的设置看起来很好),而且我对延迟加载不够熟悉,但是你使用1, 2, 3作为枚举值(可以省略),export const enum不会创建一个对象并尝试引用它,但实际上将值放在您将使用它们的位置。我认为对于您的用例,这将是一个完美的契合:http://www.typescriptlang.org/docs/handbook/enums.html#const-enums

答案 1 :(得分:0)

试试这个,

euserType = eUserType;
newVariable=euserType.Driver;