Turi
|
Ma'nosi
|
|
null
|
Qiymatning yo'qligi
|
|
aniqlanmagan
|
Hali qiymat belgilanmagan oʻzgaruvchi
|
|
bekor
|
Qaytish bayonotiga ega bo'lmagan funksiya
|
|
hech qachon
|
Hech qachon qaytmaydigan funksiya
|
|
|
Qattiq null tekshiruvi
TypeScript ning eski versiyalarida (yoki TSC ning strictNullChecks opsiyasi false ga o'rnatilgan bo'lsa ) null biroz boshqacha ishlaydi: bu hech qachon dan tashqari barcha turlarning kichik turidir . Bu shuni anglatadiki, har bir tur null bo'lishi mumkin va siz avval uning null yoki yo'qligini tekshirmasdan turib, hech qachon biror narsa turiga ishona olmaysiz . Misol uchun, agar kimdir sizning funksiyangizga o'zgaruvchan pizza uzatsa va siz .addAnchovies usulini chaqirmoqchi bo'lsangiz , unga mazali mayda baliq qo'shishdan oldin pitsa nol ekanligini tekshirishingiz kerak . Amalda, bu har bir o'zgaruvchi bilan qilish juda zerikarli, shuning uchun odamlar ko'pincha avval tekshirishni unutishadi. Keyin, agar biror narsa haqiqatan ham null bo'lsa , siz ish vaqtida qo'rqinchli null ko'rsatgich istisnosiga ega bo'lasiz:
funktsiyasi addDeliciousFish ( pitsa : pizza ) {
qaytish pizza . addAnchovies () // Tugallanmagan TypeError: o‘qib bo‘lmaydi } // nullning 'addAnchovies' xususiyati
// TypeScript bu strictNullChecks = false addDeliciousFish ( null ) bilan parvoz qilish imkonini beradi
null "milliard dollarlik xato" deb nomlangan1960-yillarda uni tanishtirgan yigit tomonidan. Null bilan bog'liq muammo shundaki, bu ko'pchilik tillarning tipidagi tizimlar ifoda eta olmaydigan va tekshirmaydigan narsadir; shuning uchun dasturchi o'zlari aniqlangan deb o'ylagan o'zgaruvchi bilan biror narsa qilishga harakat qilsa, lekin u ish vaqtida nol bo'lib chiqsa , kod ish vaqti istisnosini chiqaradi!
Nega? Mendan so‘ramang, men bu kitobni yozayotgan yigitman. Ammo tillar o'zlarining turdagi tizimlarida null kodlash uchun yaqinlashmoqda va TypeScript buni qanday qilib to'g'ri bajarishning ajoyib namunasidir. Agar maqsad kompilyatsiya vaqtida foydalanuvchilar ularga duch kelmasidan oldin iloji boricha ko'proq xatolarni qo'lga kiritish bo'lsa, u holda tip tizimida nullni tekshirish imkoniyati ajralmasdir.
| Enums
bu tur uchun mumkin bo'lgan qiymatlarni sanash usuli . Ular kalitlarni qiymatlar bilan taqqoslaydigan tartibsiz ma'lumotlar tuzilmalari. Ularni kalitlar kompilyatsiya vaqtida o'rnatiladigan ob'ektlar kabi tasavvur qiling, shuning uchun TypeScript unga kirganingizda berilgan kalit haqiqatda mavjudligini tekshirishi mumkin.
Enumlarning ikki turi mavjud: satrlardan satrlarga xaritalashadigan enumlar va satrlardan raqamlarga xaritalashadigan enumlar. Ular shunday ko'rinadi:
enum Til {
Ingliz tili ,
ispan ,
rus
}
A n'anaga ko'ra, enum nomlari bosh va birlikdir. Ularning kalitlari ham katta harflardan iborat.
TypeScript avtomatik ravishda raqamingizning har bir a'zosi uchun qiymat sifatida raqamni chiqaradi, ammo siz qiymatlarni aniq belgilashingiz mumkin. Oldingi misolda TypeScript nima xulosa qilganini aniq ko'rsatamiz:
enum Til { Ingliz tili = 0 ,
ispancha = 1 ,
rus = 2
}
Enumdan qiymat olish uchun siz unga nuqta yoki qavs belgisi bilan kirasiz - xuddi oddiy ob'ektdan qiymat olish kabi:
Do'stlaringiz bilan baham: |