Programming TypeScript


Download 1.81 Mb.
bet91/206
Sana01.11.2023
Hajmi1.81 Mb.
#1737990
1   ...   87   88   89   90   91   92   93   94   ...   206
Bog'liq
Boris Cherny Programming TypeScript Making Your JavaScript Applications (1)

Mashqlar


  1. Sinf va interfeys o'rtasidagi farqlar qanday?

  2. Agar siz sinf konstruktorini xususiy deb belgilasangiz , bu siz sinfni yarata olmaysiz yoki kengaytira olmaysiz. Uni himoyalangan deb belgilasangiz nima bo'ladi ? Kod muharririda bu bilan o'ynang va buni aniqlay olasizmi yoki yo'qligini tekshiring.

  3. 108-betdagi “Zavod namunasi”ni ishlab chiqqan dasturni yanada xavfsizroq qilish uchun mavhumlikni biroz buzish hisobiga kengaytiring. Ilovani yangilang , shunda iste'molchi kompilyatsiya vaqtida Shoe.cre ate('boot') chaqiruvi Bootni , Shoe.create('balletFlat') chaqiruvi BalletFlatni (ikkalasi ham Shoe ni qaytarish o'rniga ) qaytarishini bilishi uchun. Maslahat: 58-betdagi “Haddan tashqari yuklangan funksiya turlari” ni o‘ylab ko‘ring .

  4. [Qiyin] Mashq sifatida, qanday qilib xavfsiz quruvchi naqshini yaratishingiz mumkinligi haqida o'ylab ko'ring. 109-betdagi “Yarauvchi namunasi” ni kengaytiring :

    1. Hech bo'lmaganda URL manzili va usulini o'rnatishdan oldin, kompilyatsiya vaqtida kimdir .send ga qo'ng'iroq qila olmasligini kafolatlang . Agar siz foydalanuvchini ma'lum bir tartibda usullarni chaqirishga majburlasangiz, bu kafolatni berish osonroq bo'ladimi? (Maslahat: bu o'rniga nimani qaytarishingiz mumkin ?)

    2. [Qiyinroq] Agar siz ushbu kafolatni berishni xohlasangiz, dizayningizni qanday o'zgartirgan bo'lar edingiz, lekin shunga qaramay, odamlarga usullarni istalgan tartibda chaqirishlariga ruxsat bering? (Maslahat: har bir usul chaqiruvidan keyin har bir usulning qaytish turini ushbu turga "qo'shish" qilish uchun qanday TypeScript xususiyatidan foydalanishingiz mumkin ?)

Mashqlar


6-BOB Kengaytirilgan turlari
TypeScript dunyo miqyosidagi tizimga ega bo'lib, u kuchli turdagi darajadagi dasturlash xususiyatlarini qo'llab-quvvatlaydi, bu hatto eng jingalak Haskell dasturchisini ham hasad qilishi mumkin. Siz hozir bilganingizdek, bu turdagi tizim shunchaki ajoyib ifodali emas, balki ulardan foydalanish oson va tur cheklovlari va munosabatlarini e'lon qilishni oddiy, qisqa va ko'pincha xulosalar qiladi.
Bizga shunday ifodali va noodatiy tipdagi tizim kerak, chunki JavaScript juda dinamik. Prototiplar, dinamik ravishda bog'langan, funktsiyalarning haddan tashqari yuklanishi va doimo o'zgarib turadigan ob'ektlar kabi narsalarni modellashtirish uchun Batmanni ikki marta bajarishga majbur qiladigan boy turdagi tizim va turdagi operatorlarning yordamchi kamari talab qilinadi.
Men ushbu bobni TypeScript-ni pastki tiplash, tayinlash, farqlash va kengaytirish masalalariga chuqur o'rganish bilan boshlayman, bu esa so'nggi bir necha boblarda siz ishlab chiqqan sezgilarga ko'proq ta'rif beradi. Keyin men TypeScript-ning boshqaruv oqimiga asoslangan matn terish xususiyatlarini batafsilroq ko'rib chiqaman, jumladan, aniqlashtirish va to'liqlik va ba'zi ilg'or turdagi darajadagi dasturlash xususiyatlari bilan davom etaman: ob'ekt turlariga kirish va ularni xaritalash, shartli turlardan foydalanish, o'z turdagi himoyalaringizni aniqlash , va turdagi tasdiqlar va aniq topshiriq tasdiqlari kabi qochish lyuklari. Va nihoyat, men sizning turlaringizdan ko'proq xavfsizlikni siqib chiqarish uchun ilg'or naqshlarni ko'rib chiqaman: qo'shimcha ob'ekt namunasi, kortej turlari uchun xulosani yaxshilash, nominal turlarni simulyatsiya qilish va prototipni xavfsiz kengaytirish.

Download 1.81 Mb.

Do'stlaringiz bilan baham:
1   ...   87   88   89   90   91   92   93   94   ...   206




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