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.
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 :
Do'stlaringiz bilan baham: |