Typescript: Comment convertir le type enum en tableau<object/>

Créé le 13 déc. 2016  ·  3Commentaires  ·  Source: microsoft/TypeScript

Je veux convertir le type enum en tableau.

exemple :

enum A {
chien = 1,
chat = 2,
fourmi = 3
}

convertir en: [{id: 1, name: 'dog'}, {id: 2, name: 'cat'}, {id: 3, name: 'ant'}]

Je vous remercie.

Question

Commentaire le plus utile

@narutomxc

Il s'agit d'un outil de suivi des problèmes, pas d'un forum d'aide standard. Mais de toute façon, voici comment procéder:

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

Tous les 3 commentaires

@narutomxc

Il s'agit d'un outil de suivi des problèmes, pas d'un forum d'aide standard. Mais de toute façon, voici comment procéder:

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

J'ai trouvé que {[keyof E]: E} ne peut pas être reconnu dans Webstorm. alors remplacez-le par n'importe quel ...

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

DanielRosenwasser picture DanielRosenwasser  ·  3Commentaires

MartynasZilinskas picture MartynasZilinskas  ·  3Commentaires

bgrieder picture bgrieder  ·  3Commentaires

Antony-Jones picture Antony-Jones  ·  3Commentaires

siddjain picture siddjain  ·  3Commentaires