2016-07-24 22 views
10

Utworzono wyliczenie, ale mam problem z importowaniem i używaniem wyliczenia w VS15.Jak importować Enum

Jest to enum, który jest zawarty w enums.ts:

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

Visual Studio widzi ten enum nawet bez importowania i tak nie daje błąd czasu kompilacji. Ale w czasie wykonywania, zostanie zgłoszony błąd

Cannot read property 'Archived' of undefined. 

Więc teraz próbuję go importować jak importować inne klasy:

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

Visual Studio teraz daje błąd czasu kompilacji:

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

Jak więc importować wyliczenie?

Odpowiedz

15

mi brakuje słowa kluczowego wywóz:

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

Wtedy to działało zgodnie z oczekiwaniami.

10

Uprzejmie spróbuj tego. To działa na mnie

enums.ts

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

iw wymaganym importu pliku .ts jak sposób podanych poniżej:

import {Category} from './enums' 
4

Dostaniesz ten sam błąd Cannot read property 'Foo' of undefined. Runtime gdy zdarzy ci się zdefiniuj swój Enum w jednym z plików deklaracji TypeScript (*.d.ts), ponieważ te pliki nie dostają się do JavaScript.

Więcej informacji o przykładowej aplikacji można znaleźć pod adresem here.

+0

Nie sądzę, że * .d.ts byłoby dobrym miejscem do zdefiniowania Enum. –

+1

Cóż, ja też nie. Zwłaszcza po zmarnowanym czasie, zastanawiając się, dlaczego moje wyliczenie nie jest zdefiniowane :) – luk355