TS - Generic
Last updated
Last updated
Generic ဆိုတာ အလွယ်အားဖြင့် မသိသေးတဲ့ data type ကို လက်ခံရရှိပြီး အဲ့ data type ကို ပြန်လည်အသုံးချတာဖြစ်ပါတယ် ။ Syntax က <
နဲ့ >
ကြားထဲမှာ Generic Type ကိုထည့်သွင်း အသုံးပြုတာဖြစ်ပါတယ်။
<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 အနေနဲ့ စာဖတ်သူတို့ကို ပုစ္ဆာတစ်ပုဒ် စဉ်းစားခိုင်းပါမယ် ။
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 ပြန်နေတာတွေ့ရမှာပါ ။
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 ကို အခုလို ပြောင်းလဲ ရေးသားလိုက်လို့ရပါပြီ ။