⊗tsSpGnIms 35 of 37 menu

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 ၏ အရှည်ကို ရှာဖွေရန် လုပ်ဆောင်ချက်တစ်ခုကို သတ်မှတ်ပါ။

မြန်မာ
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 များကို အသုံးပြုပါသည်။ ဒေတာများကို ပြုပြင်ခြင်းသည် ကိုယ်ရေးကိုယ်တာ မူဝါဒအတိုင်း ဖြစ်ပါသည်။
အားလုံးလက်ခံရန် ပြင်ဆင်ရန် ငြင်းပယ်ရန်