Programming TypeScript


Download 1.81 Mb.
bet88/206
Sana01.11.2023
Hajmi1.81 Mb.
#1737990
1   ...   84   85   86   87   88   89   90   91   ...   206
Bog'liq
Boris Cherny Programming TypeScript Making Your JavaScript Applications (1)

ruxsat bering foydali yuk = yangi DecoratedAPIPpayload foydali yuk . serialize () // string
Biz bu kitobda dekorativlarga chuqurroq kirmaymiz. Qo'shimcha ma'lumot olish uchun rasmiy hujjatlarga o'ting .

Yakuniy darslarni simulyatsiya qilish


yakuniy kalit so'zni qo'llab-quvvatlamasa ham , uni sinflar uchun simulyatsiya qilish oson. Agar siz ilgari ob'ektga yo'naltirilgan tillar bilan ko'p ishlamagan bo'lsangiz, final bu ba'zi tillar sinfni kengaytirilmaydigan yoki usulni bekor qilib bo'lmaydigan deb belgilash uchun foydalanadigan kalit so'zdir.
yakuniy sinflarni simulyatsiya qilish uchun biz xususiy konstruktorlardan foydalanishimiz mumkin:
sinf MessageQueue {
xususiy konstruktor ( xususiy xabarlar : string []) {} }
Agar konstruktor private deb belgilangan boʻlsa, siz sinfni yangilay olmaysiz yoki uni kengaytira olmaysiz:
sinf BadQueue uzaytiradi MessageQueue {} // Xato TS2675: sinfni kengaytirib bo'lmadi // "MessageQueue". Sinf konstruktori
// shaxsiy sifatida belgilangan.
yangi MessageQueue ([]) // Xato TS2673: sinf konstruktori // 'MessageQueue' shaxsiy va faqat
// sinf ichida foydalanish mumkin // deklaratsiya.
Xususiy konstruktorlar sinfni kengaytirishingizga to'sqinlik qilish bilan bir qatorda, uni to'g'ridan-to'g'ri yaratishingizga ham to'sqinlik qiladi. Ammo yakuniy sinflar uchun biz sinfni yaratish qobiliyatini xohlaymiz, faqat uni kengaytirish uchun emas. Qanday qilib birinchi cheklovni saqlab qolamiz, lekin ikkinchisidan qutulamiz? Oson:
sinf MessageQueue {
xususiy konstruktor ( xususiy xabarlar : string []) {}
statik yaratish ( xabarlar : string []) { qaytish yangi MessageQueue ( xabarlar )
}
}
Bu MessageQueue API-ni biroz o'zgartiradi, lekin kompilyatsiya vaqtida kengaytmalarni oldini olish uchun ajoyib ishni bajaradi:
sinf BadQueue uzaytiradi MessageQueue {} // Xato TS2675: sinfni kengaytirib bo'lmadi // "MessageQueue". Sinf konstruktori // shaxsiy sifatida belgilangan.
MessageQueue . yaratish ([]) // MessageQueue

Download 1.81 Mb.

Do'stlaringiz bilan baham:
1   ...   84   85   86   87   88   89   90   91   ...   206




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