Programming TypeScript


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

Tozalash


TypeScript oqimga asoslangan turdagi xulosani amalga oshiradi, bu o'ziga xos ramziy bajarish turi bo'lib, bunda matn tekshiruvchisi if , ? , || , va switch ni , shuningdek typeof , instanceof va in kabi soʻrovlarni kiriting , xuddi dasturchi kodni oʻqiyotgani kabi turlarni 28aniqlashtirish uchun . Bu matn terish mashinasi uchun juda qulay xususiyat, ammo juda kam sonli tillar qo'llab-quvvatlaydigan narsalardan yana biri.29
Keling, bir misolni ko'rib chiqaylik. Aytaylik, biz TypeScript-da CSS qoidalarini aniqlash uchun API yaratdik va hamkasbimiz undan HTML elementining kengligini belgilash uchun foydalanmoqchi . Ular kenglikda o'tadi, keyin biz tahlil qilishni va tasdiqlashni xohlaymiz.
Biz birinchi navbatda CSS satrini qiymat va birlikka ajratish funksiyasini amalga oshiramiz:
// Biz tavsiflash uchun satr literallari birlashmasidan foydalanamiz
turiga ega bo'lishi mumkin bo'lgan qiymatlar Birlik = 'sm' | "px" | '%'
// Birliklarni sanab o'ting
ruxsat bering birliklar : birlik [] = [ 'sm' , 'px' , '%' ]
funksiya bo'lmasa, nullni qaytaring parseUnit ( qiymat : string ) : Birlik | null { uchun ( ruxsat i = 0 ; i < birliklari . uzunligi ; i ++ ) { if ( qiymat . endsWith ( birliklar [ i ])) {
qaytish birliklar [ i ]
}
} qaytish null }
foydalanuvchi tomonidan bizga uzatilgan kenglik qiymatini tahlil qilish uchun parseUnit- dan foydalanishimiz mumkin . kenglik raqam bo'lishi mumkin (biz taxmin qilamizki, u piksellarda) yoki birliklar biriktirilgan satr yoki null yoki noaniq bo'lishi mumkin .
Biz ushbu misolda bir necha marta turni yaxshilashdan foydalanamiz :
turi Kengligi = { birlik : birlik , qiymat : raqam }
funktsiyasi parseWidth ( kenglik : raqam | ip | null | aniqlanmagan ) : Kengligi | null {
// Agar kenglik null yoki aniqlanmagan bo'lsa, erta qayting agar ( kenglik == null ) { qaytish null }
// Agar kenglik son bo'lsa, sukut bo'yicha piksellar agar ( turi kengligi === "raqam" ) { qaytish { birlik : 'px' , qiymat : kenglik }}
// Birlikni kenglikdan ajratishga harakat qiling ruxsat bering birlik = parseUnit ( kenglik ) agar ( birlik ) {

Download 1.81 Mb.

Do'stlaringiz bilan baham:
1   ...   98   99   100   101   102   103   104   105   ...   206




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