Как импортировать Enum

Я создал перечисление, но у меня возникли проблемы с импортом и использованием перечисления в VS15.

Это перечисление, которое содержится в enums.ts:

enum EntityStatus {
     New = 0,
     Active = 1,
     Archived = 2,
     Trashed = 3,
     Deleted = 4
}

Visual Studio видит это перечисление, даже не импортируя, и поэтому не дает ошибки времени компиляции. Но во время выполнения выдается ошибка.

 Cannot read property 'Archived' of undefined.

Итак, теперь я пытаюсь импортировать его, как я импортирую другие классы:

 import {EntityStatus} from "../../core/enums";

Visual Studio теперь дает ошибку времени компиляции:

 "...enums is not a module ..."

Итак, как мне импортировать перечисление?

Ответ 1

Мне не удалось найти ключевое слово export:

 export enum EntityStatus {
      New = 0,
      Active = 1,
      Archived = 2,
      Trashed = 3,
      Deleted = 4
 }

Затем он работал, как ожидалось.

Ответ 2

Когда вы определите свой Enum в одном из файлов декларации TypeScript (*.d.ts), вы получите ту же ошибку времени выполнения Cannot read property 'Foo' of undefined., поскольку эти файлы не переносятся в JavaScript.

Подробнее с примером приложения можно найти здесь.

Ответ 3

Пожалуйста, попробуйте это. Это работает для меня

enums.ts

export enum  Category {Cricket,Tennis,Golf,Badminton}

и в обязательном импортировании файла .ts, как показано ниже:

import {Category} from './enums'

Ответ 4

Просто наткнулся на нечто подобное. В моем случае я должен был убедиться, что экспортируемое имя enum отличается от имени файла.

то есть.

Экспорт enum AccessMode в файл access-mode.ts завершится ошибкой. Экспортировать enum AccessMode в файл access-modes.ts будет работать.

Ответ 5

Как сказал @Sachin Kalia, у меня были проблемы с импортом.

Я изменил это:

import {MessageAction, MessageDTO} from '../../../generated/dto';

на это:

import {MessageDTO} from '../../../generated/dto';
import {MessageAction} from '../../../generated/dto'

MessageAction - мое перечисление.