Hi everyone! I'm the author of code.mu :)
I'd love to chat with my non-Russian audience. I'm looking for your feedback on the site and the translation quality. Let's chat:)
⊗tsSpGnPTL 36 of 37 menu

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' ]
မြန်မာ
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
ဝက်ဘ်ဆိုက် လုပ်ဆောင်ခြင်း၊ ဆန်းစစ်လေ့လာခြင်းနှင့် ပုဂ္ဂလိကပြုပြင်ခြင်းအတွက် ကျွန်ုပ်တို့သည် cookie များကို အသုံးပြုပါသည်။ ဒေတာများကို ပြုပြင်ခြင်းသည် ကိုယ်ရေးကိုယ်တာ မူဝါဒအတိုင်း ဖြစ်ပါသည်။
အားလုံးလက်ခံရန် ပြင်ဆင်ရန် ငြင်းပယ်ရန်