Programming TypeScript
Download 1.81 Mb.
|
Boris Cherny Programming TypeScript Making Your JavaScript Applications (1)
turi Zaxira = {
( dan : Sana , sana : Sana , maqsad : string ) : Rezervasyon } Keling, Reserve uchun dasturni aniqlaylik : ruxsat bering zaxira : zaxira = ( dan , manzil ) = > { _ // ... } Shunday qilib, Baliga sayohatni bron qilmoqchi bo'lgan foydalanuvchi bizning zahiradagi API-ga sana , sana va "Bali" manzili sifatida qo'ng'iroq qilishi kerak. Biz API-ni bir tomonlama sayohatlarni qo'llab-quvvatlash uchun o'zgartirishimiz mumkin: turi Zaxira = { ( dan : Sana , sana : Sana , maqsad : string ) : Rezervasyon ( dan : Sana , maqsad : string ) : Rezervasyon } Rezervni amalga oshirish nuqtasida xatolik berishini ko'rasiz ( 4-3-rasmga qarang ). 4-3-rasm. Birlashtirilgan ortiqcha yuk imzosi etishmayotganda TypeError Bu TypeScript-da qo'ng'iroq imzosini haddan tashqari yuklash usuli bilan bog'liq. Agar siz f funktsiyasi uchun ortiqcha yuk imzolari to'plamini e'lon qilsangiz , qo'ng'iroq qiluvchining nuqtai nazaridan f ning turi o'sha ortiqcha yuk imzolarining birlashuvidir. Lekin f ning amalga oshirish nuqtai nazaridan, aslida amalga oshirilishi mumkin bo'lgan yagona, birlashtirilgan tur bo'lishi kerak. F -ni amalga oshirishda ushbu qo'shma chaqiruv imzosini qo'lda e'lon qilishingiz kerak - bu siz uchun taxmin qilinmaydi. Zaxira misolimiz uchun biz zaxira funksiyamizni quyidagicha yangilashimiz mumkin : turi Zaxira = { ( dan : Sana , sana : Sana , maqsad : string ) : Rezervasyon ( dan : Sana , maqsad : string ) : Rezervasyon } ruxsat bering zaxira : zaxira = ( dan : Sana , toOrDestination : Sana | string , maqsad? : string ) => { // ... } Biz ikkita haddan tashqari yuklangan funktsiya imzosini e'lon qilamiz. Amalga oshirish imzosi ikkita ortiqcha yuk imzolarini qo'lda birlashtirganimiz natijasidir (boshqacha qilib aytganda, biz Imzo1 | Imzo2ni qo'lda hisoblab chiqdik). E'tibor bering, qo'shma imzo zaxirani chaqiradigan funktsiyalarga ko'rinmaydi ; iste'molchi nuqtai nazaridan, Rezervning imzosi: turi Zaxira = { ( dan : Sana , sana : Sana , maqsad : string ) : Rezervasyon ( dan : Sana , maqsad : string ) : Rezervasyon } Shunisi e'tiborga loyiqki, bunga biz yaratgan umumiy imzo kirmaydi: // Noto'g'ri! turi Zaxira = { ( dan : Sana , sana : Sana , maqsad : string ) : Rezervasyon ( dan : Sana , maqsad : string ) : Rezervasyon ( dan : Sana , to yoki manzil : Sana | string , maqsad? : string ) : Rezervasyon } Zaxira ikki xil usulda chaqirilishi mumkinligi sababli , zahirani qo'llaganingizda TypeScript-ga uning qanday chaqirilganligini tekshirganingizni isbotlashingiz kerak:21 Download 1.81 Mb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling