funktsiyasi withEZDebug < C uzaytiradi ClassConstructor > ( sinf : C ) { qaytish sinf uzaytiradi Class { konstruktor (... args : har qanday []) { super (... args )
}
}
}
har qanday konstruktorni ifodalovchi ClassConstructor turini e'lon qilishdan boshlaymiz . TypeScript to'liq tizimli ravishda terilganligi sababli, biz konstruktor yangi bo'lishi mumkin bo'lgan har qanday narsa deb aytamiz . Biz konstruktor qanday turdagi parametrlarga ega bo'lishi mumkinligini bilmaymiz, shuning uchun biz u har qanday turdagi argumentlarni oladi deb aytamiz.27
Biz EZDebug miksinimizni bitta turdagi parametrli C bilan e'lon qilamiz . C hech bo'lmaganda sinf konstruktori bo'lishi kerak, biz uni kengaytirish bandi bilan qo'llaymiz. Biz TypeScript-ga EZDebug ning qaytish turini, ya'ni C va bizning yangi anonim sinfimiz kesishmasidan xulosa chiqarishga ruxsat beramiz.
Mixin konstruktorni qabul qiladigan va konstruktorni qaytaradigan funksiya bo'lgani uchun biz anonim sinf konstruktorini qaytaramiz.
Sinf konstruktori hech bo'lmaganda siz o'tadigan sinf qabul qilishi mumkin bo'lgan argumentlarni olishi kerak. Ammo esda tutingki, biz qaysi sinfga kirishingizni oldindan bilmasligimiz uchun men uni iloji boricha umumiy saqlashim kerak, ya'ni har qanday turdagi parametrlar soni, xuddi ClassConstructor kabi .
Class konstruktorini ham chaqirishni unutmasligimiz kerak .
konstruktorda boshqa mantiq bo'lmasa , siz va qatorlarni o'tkazib yuborishingiz mumkin. Biz EZDebug misolida konstruktorga hech qanday mantiq qo'ymoqchi emasmiz , shuning uchun ularni o'tkazib yuborishimiz mumkin.
Endi biz qozon plitasini o'rnatganimizdan so'ng, nosozliklarni tuzatish sehrini ishlash vaqti keldi. Biz .debug ga qo'ng'iroq qilganimizda , biz sinf konstruktori nomi va misol qiymatini tizimdan chiqarmoqchimiz:
turi ClassConstructor = yangi (... args : har qanday []) => {}
Do'stlaringiz bilan baham: |