Typescript: Cara mengonversi tipe enum ke Array<object/>

Dibuat pada 13 Des 2016  ·  3Komentar  ·  Sumber: microsoft/TypeScript

Saya ingin mengubah jenis enum menjadi Array.

contoh:

enum A {
anjing = 1,
kucing = 2,
semut = 3
}

konversikan ke: [{id: 1, name: 'dog'}, {id: 2, name: 'cat'}, {id: 3, name: 'ant'}]

Terima kasih.

Question

Komentar yang paling membantu

@narutom

Ini adalah pelacak masalah, bukan forum bantuan standar. Tapi bagaimanapun, inilah cara Anda melakukannya:

// 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>))
}

Semua 3 komentar

@narutom

Ini adalah pelacak masalah, bukan forum bantuan standar. Tapi bagaimanapun, inilah cara Anda melakukannya:

// 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>))
}

Oke terima kasih

Saya menemukan {[keyof E]: E} tidak dapat dikenali di Webstorm. jadi gantilah dengan ...

Apakah halaman ini membantu?
0 / 5 - 0 peringkat