[TypeScript] ๋งต๋ ํ์ (Mapped Type)
๐ ๋งต๋ ํ์ (Mapped Type)
๋งต๋ ํ์ ์ ๊ธฐ์กด์ ์ ์๋์ด ์๋ ํ์ ์ ์๋ก์ด ํ์ ์ผ๋ก ๋ณํํด ์ฃผ๋ ๋ฌธ๋ฒ์ ๋๋ค.
์๋ฐ์คํฌ๋ฆฝํธ map()
API ํจ์๋ฅผ ํ์
์ ์ ์ฉํ ๊ฒ๊ณผ ๊ฐ์ ํจ๊ณผ๋ฅผ ๊ฐ์ง๋๋ค.
๐ ๋งต๋ ํ์ ๊ธฐ๋ณธ ๋ฌธ๋ฒ
{ [ P in K ] : T }
{ [ P in K ] ? : T }
{ readonly [ P in K ] : T }
{ readonly [ P in K ] ? : T }
๐ ๋งต๋ ํ์ ์์
Heroes
๋Hulk
,Capt
,Thor
๋ผ๋ ํค๋ฅผ ์ ๋์จ ํ์ ์ผ๋ก ๊ฐ์ง๋ค.HeroAges
์Heroes
์ ํค์ ํ์ ์number
๋ก ๋ฐ๊พธ๋ ๋งต๋ ํ์ ๋ฌธ๋ฒ์ ์ ์ฉํ๋ค.- ์์
ages
๋ ํค๊ฐ์ดnumber
์ธHeroAges
๋ฅผ ํ์ ์ผ๋ก ๊ฐ์ง๋ค.
type Heroes = "Hulk" | "Capt" | "Thor";
type HeroAges = { [K in Heroes]: number };
const ages: HeroAges = {
Hulk: 33,
Capt: 100,
Thor: 1000,
};
๐ฌ ์ต์ ๋๊ธ