Programming TypeScript
Download 1.81 Mb.
|
Boris Cherny Programming TypeScript Making Your JavaScript Applications (1)
TozalashTypeScript 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: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling