TypeScript တွင် Generic ကန့်သတ်ချက်များအတွက် အမျိုးအစားပါရာမီတာများကို အသုံးပြုခြင်း
TypeScript တွင် နောက်အမျိုးအစားပါရာမီတာတစ်ခုဖြင့် ကန့်သတ်ထားသော အမျိုးအစားပါရာမီတာတစ်ခုကို ကြေငြာနိုင်ခြင်းလည်း ရှိပါသည်။ ၎င်းသည် အော့ဘ်ဂျက်တ်တစ်ခုမှ အခြားအော့ဂျက်တ်သို့ ဂုဏ်သတ္တိများကို ကူးယူရာတွင် အသုံးဝင်ပြီး၊ ပိုလျှံသော ဂုဏ်သတ္တိများ မပေးမိစေရန် အာမခံချက်ပေးနိုင်ပါသည်။
အောက်ပါ ဥပမာကို ကြည့်ရအောင်။ myFunc ဟူသော ကိန်းရှင်တစ်ခု၏ အရှည်ကို သတ်မှတ်ပေးသည့် ဖန်ရှင်ကို ပြန်ကြည့်ပါမည်။
function myFunc <T> (data: T): T {
console.log(data.length); // error
return data;
}
သို့သော် ယခုကျွန်ုပ်တို့သည် ဤဖန်ရှင်ကို length ဆိုသော ဂုဏ်သတ္တိရှိသည့် အမျိုးအစားများအတွက်သာ အလုပ်လုပ်စေလိုပါသည်။ ဤအတွက် length ဆိုသော ဂုဏ်သတ္တိပါရှိသည့် ILength အင်တာဖေ့စ်တစ်ခုကို ဖန်တီးပါမည်။
interface ILength {
length: number;
}
ထို့နောက် ကျွန်ုပ်တို့၏ ဖန်ရှင်တွင် extends ဟူသော ကီးဝပ်ကို အသုံးပြု၍ ILength မှ အမွေဆက်ခံသည့် generic အမျိုးအစားကို သတ်မှတ်ပေးပါမည်။
function myFunc <T extends ILength> (data: T): T {
console.log(data.length);
return data;
}
ကျွန်ုပ်တို့၏ ကုဒ်အပြည့်အစုံသည် အောက်ပါအတိုင်းဖြစ်ပါသည်။
interface ILength {
length: number;
}
function myFunc <T extends ILength> (data: T): T {
console.log(data.length);
return data;
}
ကျွန်ုပ်တို့၏ ဖန်ရှင်၏ အလုပ်လုပ်ပုံကို စမ်းသပ်ကြည့်ပြီး စာကြောင်းတစ်ကြောင်း၏ အရှည်ကို ရှာကြည့်ပါမည်။
console.log(myFunc('abcde'));
ကုဒ် run ပြီးနောက် ရရှိသော ရလဒ်။
5
'abcde'
အခု ပါရာမီတာအနေဖြင့် array တစ်ခုကို ပို့ကြည့်ပါမည်။
console.log(myFunc(['a', 'b', 'c']));
ကုဒ် run ပြီးနောက် ရရှိသော ရလဒ်။
3
[ 'a', 'b', 'c' ]