Programming TypeScript


Aniq topshiriqni tasdiqlash


Download 1.81 Mb.
bet123/206
Sana01.11.2023
Hajmi1.81 Mb.
#1737990
1   ...   119   120   121   122   123   124   125   126   ...   206
Bog'liq
Boris Cherny Programming TypeScript Making Your JavaScript Applications (1)

Aniq topshiriqni tasdiqlash


nol bo'lmagan tasdiqlarning maxsus holatlari uchun maxsus sintaksis mavjud (eslatma sifatida, aniq topshiriq tekshiruvi TypeScript-ning o'zgaruvchidan foydalanish vaqtida o'zgaruvchiga qiymat berilganiga ishonch hosil qilish usulidir). Masalan:
ruxsat bering userId : string
userId . toUpperCase () // Xato TS2454: "userId" o'zgaruvchisi ishlatilgan // tayinlashdan oldin.
Shubhasiz, TypeScript bu xatoni ushlash orqali bizga ajoyib xizmat qildi. Biz userId oʻzgaruvchisini eʼlon qildik , lekin uni katta harfga aylantirishdan oldin unga qiymat belgilashni unutib qoʻydik. Agar TypeScript buni sezmaganida, bu ish vaqti xatosi bo'lar edi! Ammo, agar bizning kodimiz shunga o'xshash bo'lsa-chi?
ruxsat bering userId : string fetchUser ()
userId . toUpperCase () // Xato TS2454: "userId" o'zgaruvchisi ishlatilgan // tayinlashdan oldin.
funktsiyasi fetchUser() {
Foydalanuvchi IDsi = globalCache . olish ( 'userId' )
}
Bizda dunyodagi eng katta kesh bor va biz ushbu keshni so'raganimizda 100% keshga ega bo'lamiz. Shunday qilib, fetchUser ga qo'ng'iroq qilingandan so'ng , userId aniqlanishi kafolatlanadi. Ammo TypeScript buni statik ravishda aniqlay olmaydi, shuning uchun u avvalgidek xato qiladi. Biz TypeScript-ga foydalanuvchi identifikatori biz uni o'qiganimizda aniq tayinlanishini aytish uchun aniq tayinlash tasdiqidan foydalanishimiz mumkin (undov belgisiga e'tibor bering):
ruxsat bering userId ! : string fetchUser () userId . toUpperCase () // OK
funktsiyasi fetchUser() {
Foydalanuvchi IDsi = globalCache . olish ( 'userId' ) }
null bo'lmagan tasdiqlar kabi , agar siz aniq topshiriq tasdiqlaridan tez-tez foydalansangiz, siz noto'g'ri ish qilyapsiz.

Nominal turlarni simulyatsiya qilish


Kitobning shu nuqtasida, agar men sizni ertalab soat uchda uyg'otib, "TYPESCRIPT TIZIMI TUZILIKMI YOKI NOMINALMI?!" deb qichqirsam. “Albatta bu tuzilmaviy! HOZIR UYIMDAN TUTING, YOKI MILISIYANI CHqiraman!” Bu erta tongda tizim savollariga kirishimga adolatli javob bo'lardi.
Qonunlardan tashqari, haqiqat shundaki, ba'zida nominal turlar haqiqatan ham foydalidir. Masalan, sizning ilovangizda tizimingizdagi har xil turdagi ob'ektlarga murojaat qilishning o'ziga xos usullarini ifodalovchi bir nechta identifikator turlari mavjud deylik :

Download 1.81 Mb.

Do'stlaringiz bilan baham:
1   ...   119   120   121   122   123   124   125   126   ...   206




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