return { birlik , qiymat : parseFloat ( kenglik )}}
// Aks holda, nullni qaytaring qaytish null }
null bilan tenglikni tekshirish JavaScript-da null va undefined uchun ham rost bo'lishini bilish uchun. U biladiki, agar bu tekshiruv o'tib ketsa, biz qaytib kelamiz va agar biz qaytmagan bo'lsak, bu chek o'tmaganligini anglatadi, shuning uchun bundan buyon width ning turi raqam | string (endi null yoki aniqlanmagan bo'lishi mumkin emas ). Biz turi | sonidan tozalangan deb aytamiz string | null | soniga aniqlanmagan | string .
Typeof tekshiruvi uning turini ko'rish uchun ish vaqtida qiymatni so'raydi . TypeScript kompilyatsiya vaqtida typeof dan ham foydalanadi : tekshirish o'tgan if bo'limida TypeScript kenglik son ekanligini biladi ; aks holda (chunki filialning qaytish s) kengligi satr bo'lishi kerak - bu qolgan yagona tur.
ParseUnit chaqiruvi null ni qaytarishi mumkinligi sababli , uning natijasi haqiqat yoki yo'qligini tekshirish orqali tekshiramiz. 30TypeScript biladiki, agar birlik rost bo'lsa, u if filialida Unit turida bo'lishi kerak , aks holda, birlik noto'g'ri bo'lishi kerak, ya'ni u null tipida bo'lishi kerak ( Unit | null dan tozalangan ).
Nihoyat, biz null ni qaytaramiz . Bu faqat foydalanuvchi width uchun satrni o'tkazgan taqdirdagina sodir bo'lishi mumkin , lekin bu qatorda biz qo'llab-quvvatlamaydigan birlik mavjud bo'lsa.
Men bu yerda amalga oshirilgan har bir turdagi takomillashtirish uchun TypeScript nimani o‘ylayotganini aniq aytib berdim, lekin umid qilamanki, bu kodni o‘qiyotgan dasturchi siz uchun intuitiv va ravshan edi. TypeScript kodni o'qish va yozish jarayonida miyangizdan nimalar kechayotganini tushunish va uni matn terish va xulosa chiqarish qoidalari ko'rinishida kristallashtirish bo'yicha ajoyib ishni bajaradi.
Biz hozirgina bilib olganimizdek, TypeScript JavaScript qanday ishlashini chuqur tushunadi va dasturingizni boshingizda kuzatayotganingizda bo'lgani kabi, siz o'z turlaringizni takomillashtirishda kuzatib borishga qodir.
Misol uchun, biz dastur uchun maxsus hodisalar tizimini yaratmoqdamiz, deylik. Biz bir nechta hodisa turlarini va keladigan hodisalarni boshqarish funksiyasini belgilashdan boshlaymiz. Tasavvur qiling-a, UserTextEvent klaviatura hodisasini modellashtiradi (masalan, foydalanuvchi matnida biror narsani yozgan ) va UserMouseEvent sichqoncha hodisasini modellaydi ( Masalan, foydalanuvchi sichqonchani koordinatalarga ko'chirdi [100, 200] ):