Deklaratsiyani birlashtirish - TypeScript-ning bir xil nomga ega bo'lgan bir nechta deklaratsiyalarni avtomatik ravishda birlashtirish usuli. Bu biz raqamlarni kiritganimizda paydo bo'ldi ( 39-betdagi "Enums" ) va nomlar maydoni deklaratsiyasi kabi boshqa funktsiyalar bilan ishlashda ham paydo bo'ladi (qarang : "Ismlar bo'shliqlari" 222-bet ). Ushbu bo'limda biz interfeyslar kontekstida deklaratsiyani birlashtirishni qisqacha tanishtiramiz. Chuqurroq sho'ng'ish uchun 226-betdagi "Deklaratsiyani birlashtirish" ga o'ting .
Misol uchun, agar siz ikkita bir xil nomdagi foydalanuvchi interfeysini e'lon qilsangiz, TypeScript ularni avtomatik ravishda siz uchun bitta interfeysga birlashtiradi:
// Foydalanuvchining bitta maydoni, nomi bor
interfeys Foydalanuvchi { ism : string }
// Endi foydalanuvchi ikkita maydonga ega, ismi va yoshi
interfeys Foydalanuvchi { yoshi : raqam }
ruxsat bering a : foydalanuvchi = { ism : 'Eshli' , yoshi : 30 }
Agar siz ushbu misolni turdagi taxalluslar bilan takrorlasangiz nima bo'ladi:
turi Foydalanuvchi = { // Xato TS2300: "Foydalanuvchi" identifikatorining takrorlanishi. nomi : string }
turi Foydalanuvchi = { // Xato TS2300: "Foydalanuvchi" identifikatorining takrorlanishi. yosh : raqam }
E'tibor bering, ikkala interfeys bir-biriga zid bo'lishi mumkin emas; agar biri xususiyatni T sifatida yozsa, ikkinchisi esa uni U sifatida yozsa va T va U bir xil bo'lmasa, siz xatoga duch kelasiz:
interfeys Foydalanuvchi { yoshi : string }
interfeys Foydalanuvchi {
yoshi : raqam // Xato TS2717: Keyingi mulk deklaratsiyasida bo'lishi kerak
} // bir xil turdagi. "age" xususiyati "string" turida bo'lishi kerak, // lekin bu yerda "raqam" turi mavjud.
100-betdagi "Polimorfizm" ga o'ting ), bu generiklar ikkita interfeys birlashtirilishi uchun xuddi shu tarzda e'lon qilinishi kerak - umumiy nomigacha!
Do'stlaringiz bilan baham: |