Typescript: 列挙型を配列に変換する方法<object/>

作成日 2016年12月13日  ·  3コメント  ·  ソース: microsoft/TypeScript

列挙型を配列に変換したい

例:

列挙型A {
犬= 1、
猫= 2、
ant = 3
}

変換先:[{id:1、name: 'dog'}、{id:2、name: 'cat'}、{id:3、name: 'ant'}]

ありがとうございました。

Question

最も参考になるコメント

@narutomxc

これは課題追跡システムであり、標準のヘルプフォーラムではありません。 しかしとにかく、これがあなたがそれをする方法です:

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

全てのコメント3件

@narutomxc

これは課題追跡システムであり、標準のヘルプフォーラムではありません。 しかしとにかく、これがあなたがそれをする方法です:

// 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、thx

Webstormで{[keyof E]: E}を認識できないことがわかりました。 だからそれを任意のものと交換してください...

このページは役に立ちましたか?
0 / 5 - 0 評価