TS - Generic

Generic ဆိုတာ ?

Generic ဆိုတာ အလွယ်အားဖြင့် မသိသေးတဲ့ data type ကို လက်ခံရရှိပြီး အဲ့ data type ကို ပြန်လည်အသုံးချတာဖြစ်ပါတယ် ။ Syntax က < နဲ့ > ကြားထဲမှာ Generic Type ကိုထည့်သွင်း အသုံးပြုတာဖြစ်ပါတယ်။

Generic Function

<T> ( value: T ): T ရေးသားနည်းနဲ့ Generic Function ကို ရေးသားပါတယ် ။

T က Dynamic Type ကို ရည်ညွှန်းထားတာပါ ။

T ထဲကို အခြား Type တွေကို အစားထိုး ကြည့်မယ်ဆိုရင် ...

T က string အနေနဲ့ အစားထိုးမယ်ဆိုရင် ၊ လက်ခံမယ့် Parameter (value: string) ဖြစ်ပြီး Return type က လည်း string ဖြစ်သွားမှာပါ ။

T က number ဖြစ်မယ်ဆိုရင် ၊ Parameter (value: number) ဖြစ်ပြီး Return type က number ဖြစ်သွားမှာပါ ။

T = boolean ဆိုလည်း ထိုနည်းလည်းကောင်းပါပဲ ။

ဘယ်ဘက် code အရ identity("Hello World") function ခေါ်လိုက်တာက ၊ Parameter အရ string type ဖြစ်တဲ့အတွက် Return Type သည် string type ပဲ ရလာမှာဖြစ်ပါတယ် ။ ဒါကို str variable ကို mouse နဲ့ ခဏအကြာ hover လုပ်လိုက်ရင် let str: string ဆိုပြီး ပေါ်လာတာတွေ့နိုင်မှာပါ ။

ညာဘက်ပုံ code identity(42) မှာ ၊ Parameter value type ဖြစ်ပြီး Return ကလည်း value type ဖြစ်လာပါတယ် ။

ဒီနည်းလမ်းနဲ့ Generic Type <T> Function တွေ ရေးသားနိုင်ပါတယ် ။

အခု Primitive Type တွေ အစား Complex ဖြစ်တဲ့ User Object တစ်ခုလုပ်ပြီး ထည့်သွင်း အသုံးပြုကြည့်ပါမယ် ။

User Object type တစ်ခု ဖန်တီးလိုက်ပါမယ် ။

စာဖတ်သူတို့က < T > နေရာမှာ User Type ကို အစားထိုးကြည့်လိုက်ပါ ။

Return Type ကလည်း User Type ရသွားမှာဖြစ်ပါတယ် ။

Code အပြည့်စုံကို မိမိစက်ထဲမှာ ထည့်သွင်း စမ်းရေးကြည့်ပါ ။

Exercise for Generic

Exercise အနေနဲ့ စာဖတ်သူတို့ကို ပုစ္ဆာတစ်ပုဒ် စဉ်းစားခိုင်းပါမယ် ။

successResponse("Hello") function ကို ခေါ်သုံးလိုက်လျင် ၊ Return အနေနဲ့

{ success: true, data: "Hello" }ကို ပြန်ရမှာဖြစ်ပါတယ် ။

successResponse( { id: 1, name: "LMP" } ) function မှာ ၊ Return Type က

{ success: true, data: { id: 1, name: "LMP" } } ကို ပြန်ရမှာဖြစ်ပါတယ် ။

စာဖတ်သူတို့က successResponse ကို generic function တစ်ခုအနေနဲ့ ရေးကြည့်ပါ ။

ဟုတ်ပါတယ် Return type နေရာမှာ { success: boolean, data: T } လို့ပြောင်းပေးလိုက်ရင် မှန်ပါတယ် ။ T နေရာမှာ အစားထိုးလိုက်တဲ့ Code ပုံလေးကို တစ်ချက်ကြည့်ကြပါမယ် ။

helloResult ကို mouse နဲ့ ခဏအကြာ တင်ထားလိုက်ရင် ၊

return type ကို ထည့်လိုက်တဲ့ Type အတိုင်း Dynamic Return ပြန်နေတာတွေ့ရမှာပါ ။

Generic Type

type Generic<T> = T ရေးသားနည်းနဲ့ Generic Type ကို ရေးသားနိုင်ပါတယ် ။

Exercise မှာရေးခဲ့တဲ့ Return Type ကိုပဲ Custom Generic Type အနေနဲ့ ရေးပြသွားပါမယ် ။

Type ကို Response နာမည်နဲ့ Generic Type အမျိုးအစားရေးသားလိုက်ပါတယ် ။

ညာဘက် Code က string type ကို အစားထိုး ရေးထားတာဖြစ်ပါတယ် ။

နမူနာ Code ထဲကအတိုင်း Response ဆိုရင် data နေရာမှာ number type ဖြစ်မှာပါ ။

< နဲ့ > ကြားထဲမှာ Type တွေကို ပြောင်းလဲ ပြီး မိမိစက်ထဲမှာ စမ်းနိုင်ပါတယ် ။

နားလည်သွားပြီဆိုရင် ခုဏက Exercise ပုစ္ဆာရဲ့ Response Type ကို အခုလို ပြောင်းလဲ ရေးသားလိုက်လို့ရပါပြီ ။

Last updated