funktsiyasi qo'ng'iroq qiling < T uzaytiradi noma'lum [], R > ( f : (... args : T ) => R ,
... args : T
) : R {
qaytish f (... args ) }
Bu aniq qanday ishlaydi? Keling, uni bosqichma-bosqich ko'rib chiqaylik:
chaqiruv ikki turdagi parametrlarga ega bo'lgan variadik funktsiyadir (eslatma sifatida, variadik funktsiya har qanday miqdordagi argumentlarni qabul qiladigan funktsiyadir): T va R . T - noma'lum[] ning kichik turi ; ya'ni T har qanday turdagi massiv yoki kortejdir.
chaqiruvning birinchi parametri f funktsiyadir . f ham variadik va uning argumentlari args bilan bir turga ega : args turi qanday bo'lishidan qat'i nazar, f argumentlari aynan bir xil turga ega.
f funktsiyasiga qo'shimcha ravishda chaqiruv qo'shimcha parametrlarning o'zgaruvchan soniga ega ... args . args - dam olish parametri, ya'ni o'zgaruvchan sonli argumentlarni tavsiflovchi parametr. args ning turi T va T massiv turi bo'lishi kerak (aslida, agar biz T massiv turini kengaytiradi, deb aytishni unutgan bo'lsak , TypeScript bizga qiyshayib tashlaydi), shuning uchun TypeScript T asosidagi kortej turini chiqaradi. args uchun o'tgan maxsus argumentlar bo'yicha .
qo'ng'iroq R turidagi qiymatni qaytaradi ( R qaysi turdagi f qaytarsa , unga bog'langan ).
Endi biz call ga qo'ng'iroq qilganimizda , TypeScript qaytish turi nima ekanligini aniq bilib oladi va noto'g'ri argumentlar sonini berganimizda shikoyat qiladi:
ruxsat bering a = chaqirish ( to'ldirish , 10 , 'a' ) // string[] let b = chaqiruv ( to'ldirish , 10 ) // TS2554 xatosi: kutilgan 3 ta argument; oldi 2. ruxsat c = chaqiruv ( to'ldirish , 10 , 'a' , 'z' ) // TS2554 xatosi: kutilgan 3 ta argument; 4 oldi.
141-betdagi “Kompyuterlar uchun tur xulosasini yaxshilash” bo‘limidagi kortejlar uchun tur xulosasini yaxshilash uchun TypeScript dam olish parametrlari uchun kortej turlarini chiqarish usulidan foydalanish uchun shunga o‘xshash texnikadan foydalanamiz . Umumiy turdagi standart sozlamalar
Funktsiya parametrlariga standart qiymatlarni berishingiz mumkin bo'lganidek, umumiy turdagi parametrlarga standart turlarni ham berishingiz mumkin. Masalan, 73-betdagi “Umumiy turdagi taxalluslar” dan MyEvent turini qayta ko‘rib chiqamiz . Eslatib o'tamiz, biz DOM hodisalarini modellashtirish uchun ushbu turdan foydalanganmiz va u quyidagicha ko'rinadi:
Do'stlaringiz bilan baham: |