Oxirgi bo'limda biz ishlatgan funktsiya turi sintaksisi - Fn = (...) turi => ... - stenogramma chaqiruv imzosi . Buning o'rniga biz buni aniqroq yozishimiz mumkin. Yana Log misolini olib :
// Stenografiya imzosi
turi Jurnal = ( xabar : string , userId? : string ) => bekor
// To'liq qo'ng'iroq imzosi turi Jurnal = {
( xabar : string , userId ?: string ) : bekor
}
Ikkalasi har jihatdan mutlaqo ekvivalentdir va faqat sintaksisda farqlanadi.
Hech qachon stenogramma orqali to'liq qo'ng'iroq imzosidan foydalanmoqchimisiz? Jurnal funksiyamiz kabi oddiy holatlar uchun siz stenografiyani afzal ko'rishingiz kerak; ammo murakkabroq funktsiyalar uchun to'liq imzolar uchun bir nechta yaxshi foydalanish holatlari mavjud.
Ulardan birinchisi funksiya turini ortiqcha yuklashdir . Lekin birinchi navbatda, funktsiyani ortiqcha yuklash nimani anglatadi?
Haddan tashqari yuklangan funksiya Bir nechta qo'ng'iroq imzolari bilan funksiya.
Ko'pgina dasturlash tillarida, ba'zi parametrlar to'plamini oladigan va qandaydir qaytish turini beradigan funktsiyani e'lon qilganingizdan so'ng, siz ushbu funktsiyani aynan o'sha parametrlar to'plami bilan chaqirishingiz mumkin va siz har doim o'sha qaytish turini qaytarib olasiz. JavaScript-da bunday emas. JavaScript juda dinamik til bo'lgani uchun, ma'lum bir funktsiyani chaqirishning bir nechta usullari mavjud bo'lishi odatiy holdir; nafaqat bu, balki ba'zan chiqish turi aslida argument uchun kirish turiga bog'liq bo'ladi!
TypeScript ushbu dinamizmni - haddan tashqari yuklangan funksiya deklaratsiyasini va kirish turiga qarab funktsiyaning chiqish turini - statik turdagi tizim bilan modellashtiradi. Biz bu til xususiyatini tabiiy deb qabul qilishimiz mumkin, ammo bu tizim turi uchun juda rivojlangan xususiyat!
Haqiqatan ham ifodali API-larni loyihalash uchun haddan tashqari yuklangan funksiya imzolaridan foydalanishingiz mumkin. Misol uchun, keling, ta'tilni bron qilish uchun API-ni loyihalashtiramiz - biz uni Zaxira deb nomlaymiz . Keling, uning turlarini chizishdan boshlaylik (bu safar to'liq turdagi imzo bilan):
Do'stlaringiz bilan baham: |