ကြုံလာနိုင်တဲ့ အခက်အခဲအသစ်များ - ပိုကြီးလာတဲ့အခါ ပိုရှုပ်ထွေးလာခြင်း
အခြေခံ TypeScript က Error အများကြီးကို ကာကွယ်ပေးနိုင်ပေမဲ့ Application တွေ၊ Project တွေ ပိုကြီးလာပြီး ပိုရှုပ်ထွေးလာတဲ့အခါ အခက်အခဲ အသစ်တွေ ပေါ်လာတတ်ပြန်ပါတယ်။
- Code တွေ ထပ်ခါထပ်ခါ ရေးနေရခြင်း (Repeating): ပုံစံတူ အလုပ်တစ်ခုတည်းကိုပဲ Data အမျိုးမျိုး (
number,string,Objectစသည်) အတွက် သီးသန့် Code တွေ ခွဲရေးနေရတာမျိုးပါ။ ဒါက Code တွေ အများကြီး ဖြစ်လာပြီး နောက်ပိုင်း ပြင်ဆင်ရ ခက်ခဲစေပါတယ်။ - Type တွေ အများကြီး ထပ်လုပ်နေရခြင်း: ရှိပြီးသား Data ပုံစံ (Type) တစ်ခုကနေ နည်းနည်းလေးလောက်ပဲ ပြောင်းလဲ အသုံးပြုချင်တာမျိုး (ဥပမာ - Property တချို့လောက်ပဲ လိုတာမျိုး၊ ဒါမှမဟုတ် တချို့ကို မလိုအပ်လို့ ဖျောက်ထားချင်တာမျိုး) ဆိုရင် Data ပုံစံအသစ် (Type အသစ်) တွေကို အမြဲတမ်း ထပ်ခွဲရေးနေရတာမျိုး ဖြစ်ပါတယ်။
- Data အသေးစိတ်ကို မပျောက်စေဘဲ စစ်ဆေးခြင်း: Data တစ်ခုက ကိုယ်လိုချင်တဲ့ ပုံစံနဲ့ ကိုက်ညီရဲ့လား စစ်ချင်တယ်။ ဒါပေမဲ့ အဲ့ဒီ Data ရဲ့ တိကျတဲ့ တန်ဖိုးလေးတွေကိုလည်း မပျောက်သွားစေချင်ဘူး (ဥပမာ - ယေဘုယျကျတဲ့
stringType လို့ သတ်မှတ်တာထက် တိကျတဲ့ Constant တန်ဖိုး"Success"ဆိုတာကိုပဲ တိုက်ရိုက် သုံးချင်တာမျိုး) ပါ။
// number Array အတွက် ပထမဆုံး Element ယူတဲ့ Functionfunction getFirstNumber(arr: number[]): number | undefined { return arr[0];}
// string Array အတွက် ပထမဆုံး Element ယူတဲ့ Functionfunction getFirstString(arr: string[]): string | undefined { return arr[0];}
// Object Array အတွက် ပထမဆုံး Element ယူတဲ့ Functioninterface User { name: string; age: number; }
function getFirstUser(arr: User[]): User | undefined { return arr[0];}
// အခု ဒီ Function သုံးခုလုံးက ပထမဆုံး Element ကိုပဲ ယူတဲ့ တူညီတဲ့ အလုပ်ကိုပဲ လုပ်နေတာပါ။ဒီလို Code တွေ ထပ်နေတော့ ဘာဖြစ်လဲဆိုတော့ - အကယ်၍ ဒီ Function ရဲ့ အလုပ်လုပ်ပုံလေး နည်းနည်း ပြောင်းချင်တယ် ဆိုပါစို့ (ဥပမာ - Array က null ဖြစ်နေလား အရင်စစ်ချင်တာမျိုး)။ အဲ့ဒီအခါကျရင် ကျွန်တော်တို့ ခုနက ခွဲရေးထားတဲ့ getFirstNumber, getFirstString, getFirstUser ဆိုတဲ့ Function သုံးခုလုံးကို လိုက်ပြင်နေရတော့မှာပါ။ Code တွေ များလာလေ၊ ပြင်ရတာ ပိုရှုပ်ပြီး ပိုမှားနိုင်လေပါပဲ။
ဒီအခက်အခဲတွေက Code ရေးရတဲ့ အချိန်ကို ပိုများစေတယ်၊ ပြန်ဖတ်ရင် နားလည်ရ ခက်စေတယ်၊ ထိန်းသိမ်း ပြင်ဆင်ရတာလည်း ပိုကြာစေပါတယ်။ ဒီလိုဆိုရင်တော့ TypeScript သုံးရခြင်းရဲ့ အကျိုးကျေးဇူးလည်း အပြည့်အဝ မရနိုင်တော့ပါဘူး။