2016-03-30 13 views
0

Beim Konvertieren eines Enumerators aus JavaScript in TypeScript musste ich eine eigene Enumeration hinzufügen - myEnumType.Enumeration als Typ/Schnittstelle verwenden

Wenn ich solche Enum als Objekttyp verwenden:

prop:myEnumType 

erwartet wird, dass der Wert vom Typ sein muss myEnumType.

Wie können wir eine Eigenschaft in TypeScript deklarieren, die die Enumeration selbst als Typ darstellt, im Gegensatz zu einem Wert dieses Typs?

Ich versuche, die Enumeration als einen Typ über eine Schnittstelle-Eigenschaft verfügbar zu machen.

Antwort

2

Ich versuche, die Enumeration als einen Typ über eine Schnittstelle-Eigenschaft verfügbar zu machen.

können Sie erklären ein enum z.B. in einem vendor.d.ts:

declare enum MyEnumType { 
    Member1, 
    Member2, 
} 

aktualisiert

Und wie würde ich dann eine Eigenschaft des Enum als eine Art, über eine Schnittstelle Eigenschaft deklarieren?

interface Foo { 
    prop: MyEnumType 
} 
+0

Und wie würde ich dann eine Eigenschaft des Enum als eine Art, über eine Schnittstelle deklarieren Eigentum? –

+0

Siehe Aktualisierung. Antwortet das für Sie? – basarat

+0

Art von. Ich würde gerne verstehen, was Sie tun, um das zu erreichen ... Gibt es etwas Besonderes an dieser 'vendor.d.ts' Datei? Oder das Hinzufügen von 'declare' ändert die Enumeration? Könnten Sie bitte die Lösung erklären? –

2

In myEnumType.ts Klasse

export enum MyEnumType { 
    Member1, 
    Member2 
} 

In Foo.ts Klasse

import { MyEnumType } from './myEnumType'; 
export interface Foo { 
    prop: MyEnumType; 
}