Ich habe eine Aufzählung erstellt, habe jedoch Probleme beim Importieren und Verwenden der Aufzählung in VS15.
Dies ist die Aufzählung, die in enums.ts enthalten ist:
enum EntityStatus {
New = 0,
Active = 1,
Archived = 2,
Trashed = 3,
Deleted = 4
}
Visual Studio sieht diese Aufzählung ohne Import und gibt daher keinen Fehler bei der Kompilierung aus. Zur Laufzeit wird jedoch ein Fehler ausgegeben
Cannot read property 'Archived' of undefined.
Jetzt versuche ich es so zu importieren, wie ich andere Klassen importiere:
import {EntityStatus} from "../../core/enums";
Visual Studio gibt jetzt einen Fehler bei der Kompilierung aus:
"...enums is not a module ..."
Wie importiere ich die Aufzählung?
typescript
Greg Gum
quelle
quelle
Antworten:
Mir fehlte das Export-Schlüsselwort:
export enum EntityStatus { New = 0, Active = 1, Archived = 2, Trashed = 3, Deleted = 4 }
Dann hat es wie erwartet funktioniert.
quelle
*.ts
.*.d.ts
Dateien funktionieren nicht. Eine Falle, in die ich geraten bin.Sie erhalten den gleichen
Cannot read property 'Foo' of undefined.
Laufzeitfehler, wenn Sie Ihre Aufzählung in einer der TypeScript-Deklarationsdateien (*.d.ts
) definieren, da diese Dateien nicht in JavaScript übertragen werden.Weitere Details mit einer Beispiel-App finden Sie hier .
quelle
Bitte versuchen Sie dies. Für mich geht das
enums.ts
export enum Category {Cricket,Tennis,Golf,Badminton}
und im erforderlichen .ts-Dateiimport wie folgt:
import {Category} from './enums'
quelle
Bin gerade auf etwas Ähnliches gestoßen. In meinem Fall musste ich sicherstellen, dass der exportierte Aufzählungsname vom Namen der Datei abweicht.
dh.
Der Export von enum AccessMode in die Datei access-mode.ts würde fehlschlagen. Export enum AccessMode in Datei access-mode.ts würde funktionieren.
quelle
Wie @Sachin Kalia sagte, hatte ich ein Problem mit Importen.
Ich habe das geändert:
import {MessageAction, MessageDTO} from '../../../generated/dto';
dazu:
import {MessageDTO} from '../../../generated/dto'; import {MessageAction} from '../../../generated/dto'
MessageAction ist meine Aufzählung.
quelle