Programming TypeScript
Download 1.81 Mb.
|
Boris Cherny Programming TypeScript Making Your JavaScript Applications (1)
- Bu sahifa navigatsiya:
- T SC bayrogi: eksperimental dekoratorlar
DekoratorlarDekoratorlar - bu bizga sinflar, sinf usullari, xususiyatlari va metod parametrlari bilan metadasturlash uchun toza sintaksisni taqdim etadigan eksperimental TypeScript xususiyatidir. Ular shunchaki siz bezab turgan narsaning funksiyasini chaqirish uchun sintaksisdir. T SC bayrog'i: eksperimental dekoratorlarUlar hali ham eksperimental bo'lgani uchun, ya'ni ular orqaga mos kelmaydigan tarzda o'zgarishi yoki kelajakda TypeScript nashrlarida butunlay olib tashlanishi mumkin - dekoratorlar TSC bayrog'i orqasida yashiringan. Agar siz bunga rozi bo‘lsangiz va bu funksiya bilan o‘ynashni istasangiz, tsconfig.json faylida “experimentalDecorators”: true ni o‘rnating va o‘qing. Dekoratorlar qanday ishlashini tushunish uchun keling, misol bilan boshlaylik: @serializable sinf APIPayload { getValue () : Yuk yuk { // ... } } @serializable sinf dekoratori bizning APIPayload sinfimizni o'rab oladi va ixtiyoriy ravishda uning o'rnini bosadigan yangi sinfni qaytaradi. Dekoratorlarsiz siz xuddi shu narsani amalga oshirishingiz mumkin: ruxsat bering APIPayload = seriyali ( sinf APIPayload { getValue () : Yuk yuki { // ... } }) Har bir dekorator turi uchun TypeScript sizdan berilgan nomga va shu turdagi dekorativ uchun kerakli imzoga ega bo'lgan funksiyaga ega bo'lishingizni talab qiladi ( 5-1-jadvalga qarang ). 5-1-jadval. Har xil turdagi dekorativ funktsiyalar uchun kutilgan turdagi imzolar
TypeScript hech qanday o'rnatilgan dekoratorlar bilan ta'minlanmaydi: qanday dekoratorlardan foydalansangiz, o'zingiz amalga oshirishingiz kerak (yoki NPM-dan o'rnatish). Har bir dekorator turi uchun - sinflar, usullar, xususiyatlar va funktsiya parametrlari uchun amalga oshirish - bu nima bezashiga qarab, ma'lum bir imzoni qondiradigan muntazam funktsiyadir. Misol uchun, bizning @serializable dekoratorimiz quyidagicha ko'rinishi mumkin: 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