Typescript: Como converter o tipo enum em Array<object/>

Criado em 13 dez. 2016  ·  3Comentários  ·  Fonte: microsoft/TypeScript

Eu quero converter o tipo enum para Array.

exemplo:

enum A {
cachorro = 1,
cat = 2,
formiga = 3
}

converter para: [{id: 1, nome: 'cachorro'}, {id: 2, nome: 'gato'}, {id: 3, nome: 'formiga'}]

obrigado.

Question

Comentários muito úteis

@narutomxc

Este é um rastreador de problemas, não um fórum de ajuda padrão. Mas de qualquer forma, você faria isso da seguinte maneira:

// 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 comentários

@narutomxc

Este é um rastreador de problemas, não um fórum de ajuda padrão. Mas de qualquer forma, você faria isso da seguinte maneira:

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

Descobri que {[keyof E]: E} não pode ser reconhecido no Webstorm. então substitua por qualquer ...

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

jbondc picture jbondc  ·  3Comentários

manekinekko picture manekinekko  ·  3Comentários

wmaurer picture wmaurer  ·  3Comentários

seanzer picture seanzer  ·  3Comentários

CyrusNajmabadi picture CyrusNajmabadi  ·  3Comentários