funktsiyasi summa ( raqamlar : raqam []) : raqam { qaytish raqamlar . kamaytirish (( jami , n ) => jami + n , 0 )}
summa ([ 1 , 2 , 3 ]) // 6 ga baholanadi
aniqlangan o'zgarmas API o'rniga o'zgaruvchan sonli argumentlarni oladigan variadik funksiya API-ni tanlashingiz mumkin . An'anaga ko'ra, bu JavaScript-ning sehrli argumentlari ob'ektidan foydalanishni talab qiladi.
argumentlar "sehrli", chunki sizning JavaScript ish vaqtingiz uni funksiyalarda siz uchun avtomatik ravishda belgilaydi va unga funksiyangizga o'tkazgan argumentlar ro'yxatini tayinlaydi. Argumentlar faqat massivga o'xshash va haqiqiy massiv emasligi sababli , unda o'rnatilgan .reduce ni chaqirishdan oldin uni massivga aylantirishingiz kerak:
funktsiyasi sumVariadic () : raqam {
qaytish Massiv
. dan ( argumentlar )
. kamaytirish (( jami , n ) => jami + n , 0 )
}
sumVariadic ( 1 , 2 , 3 ) // 6 ga baholanadi
argumentlardan foydalanishda bitta katta muammo bor : bu mutlaqo xavfsiz emas! Agar siz matn muharriringizda jami yoki n ustiga olib kelsangiz, 4-1-rasmda ko'rsatilganga o'xshash natijani ko'rasiz .
4-1-rasm. argumentlar xavfsiz emas
n va total any turiga tegishli degan xulosaga keldi va unga jimgina ruxsat bering, ya'ni siz sumVariadic dan foydalanmoqchi bo'lguningizcha :
sumVariadic ( 1 , 2 , 3 ) // TS2554 xatosi: 0 ta argument kutildi, lekin 3 ta olindi.
sumVariadic argumentlar olishini e'lon qilmaganimiz sababli , TypeScript nuqtai nazaridan u hech qanday argumentni qabul qilmaydi, shuning uchun biz undan foydalanishga harakat qilganimizda TypeErrorni olamiz.
Xo'sh, qanday qilib biz variadik funktsiyalarni xavfsiz yozishimiz mumkin?
Qutqaruvchiga dam olish parametrlari! Sehrli o'zgaruvchining xavfli argumentlariga murojaat qilish o'rniga , biz sum funksiyamizni har qanday argumentlarni xavfsiz qabul qilish uchun dam olish parametrlaridan foydalanishimiz mumkin:
Do'stlaringiz bilan baham: |