Programming TypeScript


Download 1.81 Mb.
bet132/206
Sana01.11.2023
Hajmi1.81 Mb.
#1737990
1   ...   128   129   130   131   132   133   134   135   ...   206
Bog'liq
Boris Cherny Programming TypeScript Making Your JavaScript Applications (1)

agar ( natija misol Xato ) { konsol . xato ( natija . xabar )
} boshqa {
konsol . ma'lumot ( 'Sana' , natija . toISOString ()) }
Albatta, dasturingiz xotirada xatolik yoki stekning to‘lib ketishi istisnosi tufayli baribir ishdan chiqishi mumkin, ammo ularni tiklash uchun ko‘p narsa qila olmaymiz.
Ushbu yondashuv engil va chiroyli ma'lumotlar tuzilmalarini talab qilmaydi, lekin iste'molchilar xatolik qanday turdagi nosozlikni anglatishini va qo'shimcha ma'lumot olish uchun nimani izlash kerakligini bilishlari uchun etarli ma'lumotga ega.
Salbiy tomoni shundaki, zanjirlash va joylashtirish xatolik operatsiyalari tezda batafsil ma'lumotga ega bo'lishi mumkin. Agar funktsiya T | ni qaytarsa Error1 bo'lsa, ushbu funktsiyani iste'mol qiladigan har qanday funktsiya ikkita variantga ega:

  1. Xato 1 ni aniq ko'rib chiqing .

  2. T (muvaffaqiyatli holat) bilan ishlang va Xato1 orqali uni iste'molchilarga o'tkazing. Agar buni etarlicha qilsangiz, iste'molchi hal qilishi kerak bo'lgan xatolar ro'yxati tez o'sib boradi:

funktsiyasi x () : T | Xato 1 {
// ...
}
funktsiyasi y () : U | Xato 1 | 2-xato {
ruxsat bering a = x () agar ( a misol Xato ) {
qaytish a
}
// a bilan biror narsa qiling
}
funktsiyasi z () : U | Xato 1 | Xato 2 | Xato 3 {
ruxsat bering a = y () agar ( a misol Xato ) {
qaytish a
}
// a bilan biror narsa qiling
}
Ushbu yondashuv batafsil, ammo bizga mukammal xavfsizlikni ta'minlaydi.

Variant turi


Maxsus maqsadli ma'lumotlar turlaridan foydalangan holda istisnolarni ham tasvirlashingiz mumkin. Ushbu yondashuv qiymatlar va xatolarning qaytariladigan birlashmalari bilan solishtirganda ba'zi kamchiliklarga ega (ayniqsa, ushbu ma'lumotlar turlaridan foydalanmaydigan kod bilan o'zaro ishlash), lekin u sizga xato bo'lgan hisob-kitoblar bo'yicha operatsiyalarni zanjirlash imkoniyatini beradi. Eng mashhur variantlardan uchtasi (heh!) Try , Option va Either 35turlari . Ushbu bobda biz faqat Variant turini ko'rib chiqamiz; 36qolgan ikkitasi ruhiy jihatdan o'xshash.
E 'tibor bering, Try , Option va Either ma'lumotlar turlari JavaScript muhitlariga Array , Error , Map yoki Promise kabi o'rnatilmaydi . Agar siz ushbu turlardan foydalanmoqchi bo'lsangiz, NPM-da ilovalarni topishingiz yoki ularni o'zingiz yozishingiz kerak bo'ladi.
Variant turi bizga Haskell, OCaml, Scala va Rust kabi tillardan keladi. G'oya shundan iboratki, qiymatni qaytarish o'rniga, unda qiymat bo'lishi mumkin bo'lgan yoki bo'lmasligi mumkin bo'lgan konteynerni qaytarasiz . Konteynerda aniqlangan bir nechta usullar mavjud bo'lib, ular ichida aslida qiymat bo'lmasligi mumkin bo'lsa ham, zanjirli operatsiyalarni amalga oshirish imkonini beradi. Konteyner deyarli har qanday ma'lumotlar strukturasi bo'lishi mumkin, chunki u e qiymatini ushlab turishi mumkin. Masalan, konteyner sifatida massivdan foydalanishingiz mumkin:
// ... funktsiyasi parse ( tug'ilgan kun : string ) : Sana [] {

Download 1.81 Mb.

Do'stlaringiz bilan baham:
1   ...   128   129   130   131   132   133   134   135   ...   206




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling