turi Filtr = {
< T > ( massiv : T [], f : ( element : T ) => mantiqiy ) : T []
} ruxsat bering filtr : filtr = ( massiv , f ) => // ...
filtriga bog'langan ([ 1 , 2 , 3 ], _ => _ > 2 )
filtriga bog'langan ([ 'a' , 'b' ], _ => _ !== 'b' )
// (c) T {firstName: string} bilan bog'langan
ruxsat bering ismlar = [
{ ismi : 'bet' },
{ ismi : 'caitlyn' },
{ ismi : 'xin' }
]
filtr ( nomlar , _ => _ . birinchi ism . startsWith ( 'b' ))
TypeScript bu umumiy bog‘lanishlarni biz kiritgan argumentlar turlaridan xulosa qiladi. Keling, TypeScript T ni (a) uchun qanday bog‘lashini ko‘rib chiqamiz:
Filtr uchun turdagi imzodan TypeScript massiv qandaydir T tipidagi elementlar massivi ekanligini biladi .
[1, 2, 3] massivda o'tganimizni sezadi , shuning uchun T raqam bo'lishi kerak .
TypeScript qayerda T ni ko'rsa , u raqam turini almashtiradi. Shunday qilib, f: (element: T) => mantiqiy parametr f: (element: raqam) => mantiqiy ga aylanadi va T[] qaytish turi raqam[] ga aylanadi .
f sifatida topshirgan funksiya uning yangi qabul qilingan imzosiga tayinlanishi mumkinligini tekshiradi.
Jeneriklar sizning funksiyangiz nima qilishini aniq turlarga ruxsat berganidan ko'ra umumiyroq tarzda aytishning kuchli usulidir. Jeneriklar haqida o'ylash usuli cheklovlardir . Funktsiya parametriga n sifatida izoh qo'shish kabi: raqam n parametrining qiymatini raqam turiga cheklaydi , shuning uchun umumiy T dan foydalanish T bilan bog'langan har qanday turdagi turini T ko'rsatadigan hamma joyda bir xil bo'lishini cheklaydi .
U mumiy turlardan tur taxalluslari, sinflar va interfeyslarda ham foydalanish mumkin — biz ushbu kitob davomida ulardan koʻp foydalanamiz. Ko'proq mavzularni yoritganimiz uchun ularni kontekstda tanishtiraman.
Iloji boricha generiklardan foydalaning. Ular sizning kodingizni umumiy, qayta foydalanish va qisqacha saqlashga yordam beradi.
Do'stlaringiz bilan baham: |