Programming TypeScript


Download 1.81 Mb.
bet83/206
Sana01.11.2023
Hajmi1.81 Mb.
#1737990
1   ...   79   80   81   82   83   84   85   86   ...   206
Bog'liq
Boris Cherny Programming TypeScript Making Your JavaScript Applications (1)

Aralashmalar


xususiyat yoki aralash kalit so'zlar mavjud emas , lekin ularni o'zimiz amalga oshirish oson. Ikkalasi ham bir nechta merosni taqlid qilish (bir nechta sinflarni qamrab oluvchi sinflar) va rolga yo'naltirilgan dasturlashni amalga oshirish usullari , bu dasturlash uslubi bo'lib, unda siz "bu narsa shakldir " kabi so'zlarni aytmaysiz , balki narsaning xususiyatlarini tavsiflaysiz. , "uni o'lchash mumkin" yoki "uning to'rt tomoni bor" kabi. "Is-a" munosabatlari o'rniga siz "mumkin" va "has-a" munosabatlarini tasvirlaysiz.
Aralashmalar
Keling, mixin ilovasini yarataylik.
xatti-harakatlar va xususiyatlarni sinfga aralashtirishga imkon beruvchi naqsh . An'anaga ko'ra, aralashmalar:

  • Davlatga ega bo'lishi mumkin (ya'ni, misol xususiyatlari)

  • Faqat aniq usullarni taqdim etishi mumkin (mavhum emas)

  • Konstruktorlar bo'lishi mumkin, ular sinflari aralashgan tartibda chaqiriladi

TypeScript-da miksinlarning o'rnatilgan kontseptsiyasi mavjud emas, lekin ularni o'zimiz amalga oshirish oson. Masalan, TypeScript sinflari uchun disk raskadrovka kutubxonasini loyihalashtiramiz. Biz uni EZDebug deb ataymiz . Kutubxona kutubxonadan foydalanadigan sinflar haqidagi ma'lumotlarni tizimdan chiqishga imkon berish orqali ishlaydi, shunda siz ularni ish vaqtida tekshirishingiz mumkin. Biz undan shunday foydalanamiz:
sinf Foydalanuvchi {
// ...
}
Foydalanuvchi . disk raskadrovka () // "User({"id": 3, "name": "Emma Gluzman"})'ga baho beradi
Standart .debug interfeysi bilan bizning foydalanuvchilarimiz istalgan narsani disk raskadrovka qilishlari mumkin! Keling, quraylik. Biz uni miksin bilan modellashtiramiz, uni EZDebug bilan chaqiramiz . Miksin bu shunchaki c sinf instruktorini oladigan va sinf konstruktorini qaytaradigan funksiya , shuning uchun bizning miksinimiz quyidagicha ko'rinishi mumkin:
turi ClassConstructor = yangi (... args : har qanday []) => {}


Download 1.81 Mb.

Do'stlaringiz bilan baham:
1   ...   79   80   81   82   83   84   85   86   ...   206




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