Typescript: So konvertieren Sie den Aufzählungstyp in Array<object/>

Erstellt am 13. Dez. 2016  ·  3Kommentare  ·  Quelle: microsoft/TypeScript

Ich möchte den Aufzählungstyp in Array konvertieren.

Beispiel:

Aufzählung A {
Hund = 1,
Katze = 2,
Ameise = 3
}}

konvertieren zu: [{id: 1, name: 'dog'}, {id: 2, name: 'cat'}, {id: 3, name: 'ant'}]

Dankeschön.

Question

Hilfreichster Kommentar

@narutomxc

Dies ist ein Issue-Tracker, kein Standard-Hilfeforum. Aber wie auch immer, so würden Sie es machen:

// This requires TypeScript 2.1.
// If you need older versions, use `string` instead of `keyof E`.
interface EnumItem<E> { id: E; name: keyof E; }

function enumToArray<E>(Enum: {[keyof E]: E}): EnumItem<E>[] {
    return Object.keys(Enum).map(key => ({id: Enum[key], name: key} as EnumItem<E>))
}

Alle 3 Kommentare

@narutomxc

Dies ist ein Issue-Tracker, kein Standard-Hilfeforum. Aber wie auch immer, so würden Sie es machen:

// This requires TypeScript 2.1.
// If you need older versions, use `string` instead of `keyof E`.
interface EnumItem<E> { id: E; name: keyof E; }

function enumToArray<E>(Enum: {[keyof E]: E}): EnumItem<E>[] {
    return Object.keys(Enum).map(key => ({id: Enum[key], name: key} as EnumItem<E>))
}

OK danke

Ich habe festgestellt, dass {[keyof E]: E} in Webstorm nicht erkannt werden kann. Ersetzen Sie es also durch ...

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen