Schleifen durch ein Enum, TypeScript und JQuery

7

Hallo ich versuche, eine direkte Todo-App mit TypeScript und JQuery zu entwickeln. Ich habe eine Aufzählung, die Aufgabentypen auflistet:

%Vor%

Beim Durchlaufen des Emums mit jquery.each oder for loop erhalte ich jedoch das folgende Ergebnis (Werte und Indizes):

%Vor%

Das Folgende ist der Code, den ich durch die enum:

durchlaufe %Vor%

Kann mir jemand sagen, warum das so ist?

    
meji 04.06.2015, 20:46
quelle

1 Antwort

18

TypeScript-Aufzählungen, wenn sie in einfache JS kompiliert werden, enthalten sowohl den symbolischen Namen als auch die numerischen Werte als Eigenschaften und erklären, warum Sie FrontEnd, BackEnd, Designer, 0, 1, 2 erhalten, wenn Sie versuchen, die Eigenschaften des Objekts aufzulisten. Wie ich am besten weiß, gibt es keine Möglichkeit, nach dem Kompilieren nur die symbolischen Namen aufzulisten. Sie könnten alle aufzählen und alles überspringen, was eine Nummer ist.

Von In diesem Artikel können Sie genau sehen, wie ein TypeScript Enum in JS kompiliert wird.

Wenn Sie dieses TypeScript haben:

%Vor%

Es kompiliert zu diesem Javscript:

%Vor%

Was im Wesentlichen das Ergebnis ist:

%Vor%

Solange Sie die numerischen Eigenschaften nicht ignorieren, gibt es keine Möglichkeit, nur die Enum-Namen aufzulisten.

Du könntest das so machen:

%Vor%

Arbeitsdemo: Ссылка

Zu Ihrer Information, wenn Sie wirklich wollen:

%Vor%

Dann sollten Sie die Enumeration nicht verwenden und nur diese Standard-JS-Deklaration verwenden. Dann könnten Sie die Eigenschaften mit Object.keys(StandardEnum) erhalten.

    
jfriend00 04.06.2015, 21:17
quelle