Я использую 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.
Можете поделиться кодом, где используется ViewsModule?
PreloadingStrategy (объявленный в файле, отличном от файла модуля) используются там, а мой enum применяется к классу PreloadingStrategy.
А с export const enum eUserType {...} работает?
@Alex Szabó Yeeessss. но почему???
@Rzassar - я не уверен, что не так с вашей настройкой, из того, что я вижу, все выглядит отлично - и я недостаточно знаком с отложенной загрузкой, чтобы сказать, но вы используете 1, 2, 3 в качестве значений перечисления может быть опущен), и export const enum не будет создавать объект и пытаться ссылаться на него, а фактически помещает значения там, где вы бы их использовали. Я думаю, что для вашего варианта использования это было бы идеально -> typescriptlang.org/docs/handbook/enums.html#const-enums
@ AlexSzabó, почему бы тебе не написать это как ответ, чтобы я мог отметить это?





Попробуй это,
euserType = eUserType;
newVariable=euserType.Driver;
Вероятно, это не поможет вам в решении текущей проблемы (ваша настройка кажется прекрасной), и я недостаточно знаком с ленивой загрузкой, чтобы сказать, но вы используете 1, 2, 3 в качестве значений перечисления (которые можно опустить) , и export const enum не будет создавать объект и пытаться ссылаться на него, а фактически помещает значения там, где вы бы их использовали. Я думаю, что для вашего варианта использования это было бы идеально: http://www.typescriptlang.org/docs/handbook/enums.html#const-enums
Я не получаю ошибок времени выполнения с вашим кодом stackblitz.com/edit/angular-enum