TypeScript Narrowing
Last updated
Last updated
Type တွေက Union အနေနဲ့ (၂) မျိုး ၊ (၃) မျိုးဖြစ်နေတတ်ပါတယ် ။
Code Block အတွင်းမှာ ဘယ် Type ဖြစ်နေပြီလဲဆိုတာကို တိတိကျကျသိသွားအောင် လုပ်တာကို Narrowing လုပ်တယ်လို့ ခေါ်ပါတယ် ။
Narrowing ကို အဓိကအားဖြင့် Conditional Statements တွေနဲ့ လုပ်နိုင်ပါတယ် ။
typeof value === "string"
နဲ့ စစ်ထားတဲ့ block အတွင်းကို ကြည့်လိုက်ပါ ။ အဲ့ဒီ Condition ကြောင့် value က string type
မှန်း typescript က သိသွားပြီး narrow down လုပ်လိုက်ပါတယ် ။ ဒီတော့ value မှာ string နဲ့ ဆိုင်တဲ့ method တွေပဲ TypeScript Server က feedback ပေးပါတော့မယ် ။
else
block အတွင်းမှာလည်း TypeScript က narrow down လုပ်လိုက်ပါတယ် ။ အပေါ်မှာက String Type ဖြစ်တဲ့အတွက် အောက် Block မှာ Number Type အဖြစ် Narrowing လုပ်သွားပါတယ်။
Switch Statement နဲ့ Narrowing လုပ်တဲ့ Code ကိုရေးသားထားခြင်းပဲဖြစ်ပါတယ် ။
Admin type အတွက် role မှာ "admin" ဖြစ်ပြီး User type အတွက် role မှာ "user" ဖြစ်ပါတယ် ။
"user.role" ကို အခြေခံပြီး switch မှာ စစ်ထုတ်ထားတာပါ ။
case "admin" block ထဲမှာ user က Admin Type အဖြစ် narrow လုပ်သွားတာကို သိနိုင်ပါတယ် ။
ဒီလောက်ဆို Narrowing လုပ်တယ်ဆိုတာကို အခြေခံအားဖြင့် နားလည်သွားလောက်ပါပြီ ။