> 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-typeof.md).

# TS - typeof

### typeof&#x20;

`typeof` ကို JavaScript runtime မှာ သုံးမယ်ဆိုရင် variable ရဲ့ type ကို `string` အနေနဲ့ return ပြန်ပါမယ်။

TypeScript ရေးသားနည်းမှာ `typeof` ကို သုံးမယ်ဆိုရင်တော့ variable ရဲ့ Type Structure ကို ပြန်ရမှာဖြစ်ပါတယ် ။

<figure><img src="https://4062235122-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F7tekcoDYDaKhlNreT5uK%2Fuploads%2FN2sLFdScMq2dNfvLfamf%2FTypescript%20typeof%20Syntax.png?alt=media&amp;token=b84945b7-f036-4a74-beb6-b6afbe64c01f" alt=""><figcaption></figcaption></figure>

အခု နမူနာ Code ထဲကအတိုင်း `typeof user` က JavaScript Runtime မှာဆို "object" ဆိုတဲ့ String ကိုရသွားမှာပါ ။ &#x20;

TypeScript ရေးသားနည်းမှာ  `typeof variable` ပုံစံနဲ့  Object Structure ကို `CustomType` အဖြစ် ပြုလုပ်နိုင်ပါတယ် ။

`appConfig` Code ကို လေ့လာသွားကြပါမယ် ။&#x20;

ပထမဆုံး `appName` နဲ့ `env` property တွေပါတဲ့ appConfig ဆိုတဲ့ constant variable တည်ဆောက်ထားပါတယ် ။

<figure><img src="https://4062235122-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F7tekcoDYDaKhlNreT5uK%2Fuploads%2FkmFq1hVNyECyenfR2HNd%2FTypescript%20typeof%20Syntax%20Code%20Sample.png?alt=media&amp;token=4aef52d8-6e4f-475c-8db0-9a3d2eac009a" alt=""><figcaption></figcaption></figure>

Custom Type တစ်ခုအဖြစ် `ConfigType` ကို constant appConfig က တဆင့် `typeof appConfig` သုံးပြီး ပြုလုပ်လိုက်ပါတယ် ။

အခြား `devConfig` နဲ့ `prodConfig`  Config Variables တွေအတွက်  Reusable Type အဖြစ် အသုံးပြုနိုင်သွားပါပြီ ။

Type တွေကို ကိုယ်တိုင် သတ်မှတ်တာမဟုတ်ဘဲ Variable ဆီက Type ကို ပုံတူပွားတာမျိုး ဖြစ်တဲ့အတွက် အသုံးများပါတယ်။

<figure><img src="https://4062235122-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F7tekcoDYDaKhlNreT5uK%2Fuploads%2F4nVu4DOizbK4xolOjy6r%2FTypescript%20typeof%20Syntax%20Code%20Sample-1.png?alt=media&amp;token=01fa2345-5a47-4a1e-a8ba-18e1f908ce86" alt=""><figcaption></figcaption></figure>

Custom Type မတည်ဆောက်တော့ပဲ တိုက်ရိုက် `variable: typeof otherVariable`  အခုလိုပုံစံမျိုးနဲ့လည်း ရေးသားတာမျိုး ရှိပါတယ် ။ ဒါက ရိုးရှင်းတဲ့ Type Alias တစ်မျိုးပဲဖြစ်ပါတယ် ။

### keyof typeof တွဲရေးခြင်း

<figure><img src="https://4062235122-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F7tekcoDYDaKhlNreT5uK%2Fuploads%2F7skYMRcvUsK55Caavcs8%2FTypescript%20keyof%20typeof%20Syntax.png?alt=media&amp;token=64f7653d-705d-41e8-9b16-8de3d4763cd6" alt=""><figcaption></figcaption></figure>

ဒါကလည်း အသုံးများတဲ့ ပုံစံလေးဖြစ်ပါတယ် ။&#x20;

`typeof` ကို သုံးလိုက်တဲ့အခါ variable ရဲ့ Type Structure ကိုရသွားမှာပါ ။&#x20;

ပြီးတော့မှ သူ့ရဲ့ အရှေ့မှာ keyof နဲ့ union keys တွေကို ထုတ်ယူလိုက်တာပဲဖြစ်ပါတယ် ။
