Programming TypeScript


Generiklar qachon bog'lanadi?


Download 1.81 Mb.
bet57/206
Sana01.11.2023
Hajmi1.81 Mb.
#1737990
1   ...   53   54   55   56   57   58   59   60   ...   206
Bog'liq
Boris Cherny Programming TypeScript Making Your JavaScript Applications (1)

Generiklar qachon bog'lanadi?
Umumiy turni e'lon qilgan joy nafaqat turni qamrab oladi, balki TypeScript qachon aniq turni umumiy turingizga bog'lashini ham belgilaydi. Oxirgi misoldan:
turi Filtr = {
< T > ( massiv : T [], f : ( element : T ) => mantiqiy ) : T []
}
ruxsat bering filtr : filtr = ( massiv , f ) => // ...
ni qo'ng'iroq imzosining bir qismi sifatida e'lon qilganimiz uchun (imzoning ochilish qavs oldidan () ) , biz Filter tipidagi funksiyani aslida chaqirganimizda TypeScript aniq turni T ga bog'laydi .
Agar biz T ni Filter taxallus turiga qo'ygan bo'lsak, TypeScript Filter dan foydalanganda bizdan turni aniq bog'lashni talab qilgan bo'lar edi :
turi < T > filtri = {
( massiv : T [], f : ( element : T ) => mantiqiy ) : T []
}
ruxsat bering filtr : filtr = ( massiv , f ) => // Xato TS2314: Umumiy turdagi "Filtr" // ... // 1 turdagi argument(lar)ni talab qiladi.
turi Boshqa Filtr = Filtr // Xato TS2314: Umumiy turdagi "Filtr" // 1 turdagi argument(lar)ni talab qiladi.
ruxsat bering filtr : Filtr < raqam > = ( massiv , f ) => // ...
turi StringFilter = Filtrni < string > let stringFilter : StringFilter = ( massiv , f ) => // ...
Umuman, TypeScript umumiy turlardan foydalanganda aniq turlarni umumiy bilan bog‘laydi: funksiyalar uchun, siz ularni chaqirganingizda; sinflar uchun, bu siz ularni yaratganingizda (bu haqda batafsilroq 100-betdagi “Polimorfizm” da ); va turdagi taxalluslar va interfeyslar uchun ( 91-betdagi “Interfeyslar” ga qarang ), aynan siz ulardan foydalanayotganingizda yoki amalga oshirganingizda. Jeneriklarni qayerda e'lon qilish mumkin?
TypeScript-ning qo'ng'iroq imzosini e'lon qilish usullarining har biri uchun unga umumiy turni qo'shish usuli mavjud:
turi Filtr = {
< T > ( massiv : T [], f : ( element : T ) => mantiqiy ) : T []
} ruxsat bering filtr : filtr = // ...

Download 1.81 Mb.

Do'stlaringiz bilan baham:
1   ...   53   54   55   56   57   58   59   60   ...   206




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