> For the complete documentation index, see [llms.txt](https://lwin-moe-paing.gitbook.io/typescript-baby-by-lwin-moe-paing/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://lwin-moe-paing.gitbook.io/typescript-baby-by-lwin-moe-paing/basic-typescript/ts-keyof.md).

# TS - keyof

<figure><img src="/files/b5YDvjzqjMQxQKMMic5I" alt=""><figcaption></figcaption></figure>

Typescript မှာ `keyof` က Object တစ်ခုရဲ့ Keys (Property Names) တွေကို Union Type တစ်ခုအဖြစ်ပြန်ထုတ်ပေးနိုင်ပါတယ် ။  `keyof ObjectType` ရေးထုံးနဲ့ String Union တွေကို ရရှိသွားမှာပါ ။&#x20;

<figure><img src="/files/SdSP7tl8yrxgRxXvbnBT" alt=""><figcaption></figcaption></figure>

နမူနာ Code ထဲမှာ `id`, `name`, `age` အစရှိတဲ့ propery တွေကို `keyof User` နဲ့ ထုတ်ယူလိုက်နိုင်ပါတယ် ။

<figure><img src="/files/oNKuJYxB9GDcPe6vp36x" alt=""><figcaption></figcaption></figure>

TypeScript server က လည်း "id" | "age" | "name" တွေကို Feedback ပေးသွားမှာဖြစ်ပါတယ် ။&#x20;

အခု ရေးသားနည်းအရ `UserKeys`  Type တစ်ခု ခွဲထုတ်ရေးသားထားခြင်းဖြစ်ပါတယ် ။&#x20;

တိုက်ရိုက် `keyof User` ပုံစံနဲ့လည်း အသုံးပြုနိုင်တာကို လေ့လာကြည့်ပါမယ် ။

<figure><img src="/files/uFDCyZ8tFPo1vG33FvyC" alt=""><figcaption></figcaption></figure>

type အသစ် မကြေငြာတော့ပဲ တိုက်ရိုက် constant `oneOfUserKeys` အနောက်မှာ keyof syntax နဲ့ ရေးသားလိုက်တာကို မြင်ရမှာပါ ။ keyof အကြောင်းအရာက ဒီလောက်ပဲဖြစ်ပါတယ် ။
