์ด๊ฑฐ ํ ์ ํ์ ๋ฐฐ์ด๋ก ๋ณํํ๊ณ ์ถ์ต๋๋ค.
์ :
enum A {
๊ฐ = 1,
๊ณ ์์ด = 2,
๊ฐ๋ฏธ = 3
}
๋ค์์ผ๋ก ๋ณํ : [{id : 1, name : 'dog'}, {id : 2, name : 'cat'}, {id : 3, name : 'ant'}]
๊ฐ์ฌํฉ๋๋ค.
ํํ
์ด๊ฒ์ ํ์ค ๋์๋ง ํฌ๋ผ์ด ์๋ ๋ฌธ์ ์ถ์ ๊ธฐ์ ๋๋ค. ๊ทธ๋ฌ๋ ์ด์จ๋ , ๋น์ ์ด ๊ทธ๊ฒ์ํ๋ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
// 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>))
}
์ข์, thx
Webstorm์์ {[keyof E]: E}
๋ฅผ) ์ธ์ ํ ์ ์์ต๋๋ค. ๊ทธ๋์ ๊ทธ๊ฒ์ ๋์ฒดํ์ญ์์ค ...
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
ํํ
์ด๊ฒ์ ํ์ค ๋์๋ง ํฌ๋ผ์ด ์๋ ๋ฌธ์ ์ถ์ ๊ธฐ์ ๋๋ค. ๊ทธ๋ฌ๋ ์ด์จ๋ , ๋น์ ์ด ๊ทธ๊ฒ์ํ๋ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.