Typescript: ์—ด๊ฑฐ ํ˜• ์œ ํ˜•์„ ๋ฐฐ์—ด๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋ฐฉ๋ฒ•<object/>

์— ๋งŒ๋“  2016๋…„ 12์›” 13์ผ  ยท  3์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: microsoft/TypeScript

์—ด๊ฑฐ ํ˜• ์œ ํ˜•์„ ๋ฐฐ์—ด๋กœ ๋ณ€ํ™˜ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค..

์˜ˆ :

enum A {
๊ฐœ = 1,
๊ณ ์–‘์ด = 2,
๊ฐœ๋ฏธ = 3
}

๋‹ค์Œ์œผ๋กœ ๋ณ€ํ™˜ : [{id : 1, name : 'dog'}, {id : 2, name : 'cat'}, {id : 3, name : 'ant'}]

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

Question

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

ํ—‰ํ—‰

์ด๊ฒƒ์€ ํ‘œ์ค€ ๋„์›€๋ง ํฌ๋Ÿผ์ด ์•„๋‹Œ ๋ฌธ์ œ ์ถ”์ ๊ธฐ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์–ด์จŒ๋“ , ๋‹น์‹ ์ด ๊ทธ๊ฒƒ์„ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

// 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 ๋Œ“๊ธ€

ํ—‰ํ—‰

์ด๊ฒƒ์€ ํ‘œ์ค€ ๋„์›€๋ง ํฌ๋Ÿผ์ด ์•„๋‹Œ ๋ฌธ์ œ ์ถ”์ ๊ธฐ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์–ด์จŒ๋“ , ๋‹น์‹ ์ด ๊ทธ๊ฒƒ์„ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

// 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} ๋ฅผ) ์ธ์‹ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๊ทธ๊ฒƒ์„ ๋Œ€์ฒดํ•˜์‹ญ์‹œ์˜ค ...

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰