Programming TypeScript


turi UserTextEvent = { qiymat : string } turi


Download 1.81 Mb.
bet104/206
Sana01.11.2023
Hajmi1.81 Mb.
#1737990
1   ...   100   101   102   103   104   105   106   107   ...   206
Bog'liq
Boris Cherny Programming TypeScript Making Your JavaScript Applications (1)

turi UserTextEvent = { qiymat : string } turi UserMouseEvent = { qiymat : [ raqam , raqam ]} turi UserEvent = UserTextEvent | UserMouseEvent
funktsiyasi tutqich ( hodisa : UserEvent ) { if ( typeof voqea . qiymat === 'string' ) {
voqea . qiymat // qator
// ... qaytish
}
voqea . qiymat // [raqam, raqam] }
If blokining ichida TypeScript event.value satr bo'lishi kerakligini biladi ( chek turi tufayli ), bu esa if blokidan keyin event.value [raqam, raqam] korteji bo'lishi kerakligini bildiradi ( qaytish tufayli). if blokida ).
Agar biz buni biroz murakkablashtirsak nima bo'ladi? Keling, tadbir turlariga qo'shimcha ma'lumot qo'shamiz va turlarimizni aniqlaganimizda TypeScript qanday narxlarda bo'lishini ko'rib chiqamiz:
turi UserTextEvent = { qiymat : string , maqsad : HTMLInputElement } turi UserMouseEvent = { qiymat : [ raqam , raqam ] , maqsad : HTMLElement } turi UserEvent = UserTextEvent | UserMouseEvent
funktsiyasi tutqich ( hodisa : UserEvent ) { if ( typeof voqea . qiymat === 'string' ) {
voqea . qiymat // qator
voqea . maqsad // HTMLInputElement | HTMLElement (!!!)
// ... qaytish
}
voqea . qiymat // [raqam, raqam]
voqea . maqsad // HTMLInputElement | HTMLElement (!!!) }
Takomillashtirish event.value uchun ishlagan bo'lsa-da, u event.target ga o'tmadi . Nega? Agar tutqich UserEvent tipidagi parametrni qabul qilsa , bu biz UserTextEvent yoki UserMouseEvent ni o'tkazishimiz kerak degani emas — aslida UserMouseEvent | tipidagi argumentni o'tkazishimiz mumkin. UserTextEvent . Va birlashma a'zolari bir-biriga mos kelishi mumkinligi sababli, TypeScript biz birlashma turi bilan boshqa holatda ekanligimizni bilishning yanada ishonchli usulini talab qiladi.
Buning yo'li, birlashma turining har bir holatini belgilash uchun so'zma-so'z turdan foydalanishdir. Yaxshi belgi:

  • Birlashma turining har bir holatida bir xil joyda. Bu, agar ob'ekt turlari birlashmasi bo'lsa, bir xil ob'ekt maydoni yoki kortej turlari birlashmasi bo'lsa, bir xil indeks degan ma'noni anglatadi.

Amalda, teglangan birlashmalar odatda ob'ekt turlaridan foydalanadi.

  • Literal tip sifatida yoziladi (harf satr, raqam, mantiqiy va boshqalar). Siz har xil turdagi harflarni aralashtirishingiz va moslashtirishingiz mumkin, ammo bitta turga yopishib olish yaxshi amaliyotdir; odatda, bu string literal turi.

  • Umumiy emas. Teglar umumiy turdagi argumentlarni qabul qilmasligi kerak.

  • O'zaro eksklyuziv (ya'ni, ittifoq turi ichida yagona).

Shuni yodda tutgan holda, keling, tadbir turlarimizni yana yangilaymiz:

Download 1.81 Mb.

Do'stlaringiz bilan baham:
1   ...   100   101   102   103   104   105   106   107   ...   206




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