Typescript: Cómo convertir el tipo de enumeración a matriz<object/>

Creado en 13 dic. 2016  ·  3Comentarios  ·  Fuente: microsoft/TypeScript

Quiero convertir el tipo de enumeración a Array.

ejemplo:

enum A {
perro = 1,
gato = 2,
hormiga = 3
}

convertir a: [{id: 1, nombre: 'perro'}, {id: 2, nombre: 'gato'}, {id: 3, nombre: 'hormiga'}]

gracias.

Question

Comentario más útil

@narutomxc

Este es un rastreador de problemas, no un foro de ayuda estándar. Pero de todos modos, así es como lo harías:

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

Todos 3 comentarios

@narutomxc

Este es un rastreador de problemas, no un foro de ayuda estándar. Pero de todos modos, así es como lo harías:

// 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 gracias

Encontré que {[keyof E]: E} no se pueden reconocer en Webstorm. así que reemplázalo con cualquier ...

¿Fue útil esta página
0 / 5 - 0 calificaciones