我正在使用TypeScript 2.5.3
和Angular 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
类。
答案 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;