TypeScript ရှိ ယေဘုယျအမျိုးအစားများ၏ ကန့်သတ်ချက်များ
ယခင်သင်ခန်းစာတစ်ခုတွင် ကျွန်ုပ်တို့သည် ပေးလိုက်သည့် parameter ၏ အရှည်ကို ပြန်ထုတ်ပေးရမည့် ယေဘုယျအမျိုးအစား လုပ်ဆောင်ချက်တစ်ခုကို ဖန်တီးခဲ့ကြသည်။ သို့သော် အမျိုးအစား အားလုံးတွင် အရှည်မရှိနိုင်သောကြောင့် compile လုပ်သည့်အခါ အမှားတစ်ခုကို ပြခဲ့သည်။
function myFunc < T > (data: T): T {
console.log(data.length); // အမှား
return data;
}
ထိုအခြေအနေတွင် ယေဘုယျအမျိုးအစားကို ယေဘုယျ array အမျိုးအစားအဖြစ်
ပြောင်းလဲခြင်းဖြင့် အခြေအနေကို ပြင်ဆင်ခဲ့သည်။
သို့သော် TypeScript တွင် ယေဘုယျအမျိုးအစားများကို ကန့်သတ်ရန်
အခွင့်အရေးရှိသည်။ ဤသို့ပြုလုပ်ရန် ထောင့်ကွင်းများအတွင်း၊
ပြောင်းလဲနိုင်သော T ၏ နောက်တွင်
သော့ချက်စကားလုံး extends ကို ရေးပါ။
၎င်း၏နောက်တွင်
ကွင်းကွက်များအတွင်း စာကြောင်းအမျိုးအစား
ပြောင်းလဲနိုင်သော str အသစ်ကို ရေးသားပါ။
လုပ်ဆောင်ချက်၏ ကျန်ကုဒ်များကို
မပြောင်းလဲဘဲ ထားရှိပါ။
function myFunc <T extends {str: string}> (data: T): void {
console.log(data.str.length);
}
ထို့ကြောင့် ယေဘုယျအမျိုးအစားသည် ကွင်းကွက်များတွင် ဖော်ပြထားသော
ပြောင်းလဲနိုင်သော str ၏ အမျိုးအစားကို အမွေဆက်ခံသည်။
ယခု ကျွန်ုပ်တို့၏ လုပ်ဆောင်ချက်၏ အလုပ်လုပ်ပုံကို စစ်ဆေးကြည့်ပြီး
အမျိုးအစား str ကို ညွှန်ပြသော ပြောင်းလဲနိုင်သော myStr
တစ်ခုကို ဖန်တီးကာ ၎င်းအတွက် တန်ဖိုးတစ်ခုကို ကွင်းကွက်များအတွင်း သတ်မှတ်ပါ။
let myStr: {str: string} = {str: 'abcde'};
လုပ်ဆောင်ချက် myFunc ကို ခေါ်ယူကြပါစို့၊
၎င်း၏အမျိုးအစားကို ထပ်မံဖော်ပြရန် မမေ့ပါနှင့် ပြီးလျှင်
ပြောင်းလဲနိုင်သော myStr ကို parameter အဖြစ် ပေးပို့ပါ။
myFunc <{str: string}> (myStr);
သင်ခန်းစာတွင် လေ့လာခဲ့သော နမူနာအပေါ် အခြေခံ၍ နံပါတ်များ array ၏ အရှည်ကို ရှာဖွေရန် လုပ်ဆောင်ချက်တစ်ခုကို သတ်မှတ်ပါ။