ကြုံလာနိုင်တဲ့ အခက်အခဲအသစ်များ - ပိုကြီးလာတဲ့အခါ ပိုရှုပ်ထွေးလာခြင်း
အခြေခံ TypeScript က Error အများကြီးကို ကာကွယ်ပေးနိုင်ပေမယ့် Program တွေ၊ Project တွေ ပိုကြီးလာ၊ ပိုရှုပ်ထွေးလာတဲ့အခါ အခက်အခဲအသစ်တွေ ပေါ်လာပြန်တယ်။
- Code တွေ ထပ်ရေးနေရခြင်း(Repeating): ပုံစံတူ အလုပ်တစ်ခုကိုပဲ Data အမျိုးမျိုး (number၊ string၊ Object) အတွက် သီးသန့် Code တွေ ခွဲရေးနေရတာမျိုး။ ဒါက Code တွေ အများကြီး ဖြစ်လာပြီး ပြင်ရခက်စေတယ်။
- Type တွေ အများကြီး ထပ်လုပ်နေရခြင်း: ရှိပြီးသား Data ပုံစံ (Type) ကနေ နည်းနည်းလေး ပြောင်းသုံးချင်တာမျိုး (ဥပမာ အချို့ အချက်အလက်နဲနဲပဲ လိုတာမျိုး) လုပ်ချင်ရင် Data ပုံစံအသစ် (Type အသစ်) တွေ ထပ်ခွဲလုပ်နေရတာမျိုး။
- Data ရဲ့ အသေးစိတ်ကို မပျောက်စေဘဲ ပုံစံမှန်မမှန် စစ်ဆေးခြင်း: Data တစ်ခုက ငါလိုချင်တဲ့ ပုံစံ (Type) နဲ့ ကိုက်ညီရဲ့လား စစ်ချင်တယ်၊ ဒါပေမယ့် အဲဒီ Data ရဲ့ တိကျတဲ့ တန်ဖိုးလေးတွေကိုလည်း သုံးချင်တာမျိုး။ (ဥပမာ number type ဖြစ်ရမယ် ဆိုတာထက် constant “5” ဆိုတာကိုပဲ သုံးချင်တာမျိုး)။
// 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 ယူတဲ့ Function// (User Type က အရင်က သတ်မှတ်ထားတယ်လို့ မှတ်ယူပါ)interface User { name: string; age: number; }function getFirstUser(arr: User[]): User | undefined {return arr[0];}
// အခု ဒီ Function သုံးခုလုံးက ပထမဆုံး Element ကိုပဲ ယူတဲ့ အလုပ်ကိုပဲ လုပ်တာပါ။
“ဒီလို Code တွေ ထပ်နေတော့ ဘာဖြစ်လဲဆိုတော့… အကယ်၍ ဒီ Function ရဲ့ အလုပ်လုပ်ပုံလေး နည်းနည်း ပြောင်းချင်တယ်ဆိုပါစို့ (ဥပမာ Array က အချည်းနှီး ဖြစ်နေလား အရင်စစ်ချင်တာမျိုး)။ အဲဒီအခါကျရင် ကျွန်တော်တို့ ခုနက ရေးထားတဲ့ getFirstNumber, getFirstString, getFirstUser ဆိုတဲ့ Function သုံးခုလုံးကို လိုက်ပြင်နေရတော့မယ်။ Code များရင် ပြင်ရတာ ပိုရှုပ်၊ ပိုမှားနိုင်တာပေါ့။”
ဒီအခက်အခဲတွေက Code တွေကို ရေးရတာ ပိုများစေတယ်၊ နားလည်ရခက်စေတယ်၊ ပြင်ရတာ ပိုကြာစေတယ်။ Typescript သုံးခြင်းရဲ့ အကျိုးကျေးဇူးလဲ မရတော့ပါဘူး။