Programming TypeScript


funktsiyasi sumVariadicSafe (... raqamlar : raqam []) : raqam


Download 1.81 Mb.
bet42/206
Sana01.11.2023
Hajmi1.81 Mb.
#1737990
1   ...   38   39   40   41   42   43   44   45   ...   206
Bog'liq
Boris Cherny Programming TypeScript Making Your JavaScript Applications (1)

funktsiyasi sumVariadicSafe (... raqamlar : raqam []) : raqam { qaytish raqamlar . kamaytirish (( jami , n ) => jami + n , 0 )}
sumVariadicSafe ( 1 , 2 , 3 ) // 6 ni baholaydi
Bo'ldi shu! E'tibor bering, bu o'zgaruvchan yig'indi va bizning asl bitta parametrli yig'indi funksiyasi o'rtasidagi yagona o'zgarish parametrlar ro'yxatidagi qo'shimcha ... - boshqa hech narsa o'zgarishi shart emas va u mutlaqo xavfsizdir.
Funktsiyada ko'pi bilan bitta dam olish parametri bo'lishi mumkin va bu parametr funksiya parametrlari ro'yxatidagi oxirgisi bo'lishi kerak. Misol uchun, TypeScript-ning console.log uchun o'rnatilgan deklaratsiyasini ko'rib chiqing (agar siz interfeys nima ekanligini bilmasangiz , xavotir olmang - biz buni 5-bobda ko'rib chiqamiz ). console.log ixtiyoriy xabarni va jurnalga kirish uchun istalgan miqdordagi qo'shimcha argumentlarni oladi:
interfeys Konsol {
log ( xabar? : har qanday , ... optionalParams : har qanday []) : void } chaqirish, qo‘llash va bog‘lash
() bilan funktsiyani chaqirishdan tashqari , JavaScript funktsiyani chaqirishning kamida ikkita boshqa usulini qo'llab-quvvatlaydi. Avvalgi bobdan qo'shimchani oling :
funktsiyasi qo'shish ( a : raqam , b : raqam ) : raqam {
qaytish a + b }
qo'shish ( 10 , 20 ) // 30 ga qo'shiladi . qo'llash ( null , [ 10 , 20 ]) // 30 qo'shish uchun baholaydi . qo'ng'iroq ( null , 10 , 20 ) // 30 qo'shish uchun baholaydi . bind ( null , 10 , 20 )() // 30 ga baholanadi
application bu qiymatni funktsiyangiz ichida bog'laydi (bu misolda biz buni null ga bog'laymiz ) va uning ikkinchi argumentini funksiyangiz parametrlari ustiga tarqatadi. call xuddi shunday qiladi, lekin tarqalish o'rniga o'z argumentlarini tartibda qo'llaydi.
bind() o'xshash, chunki u this -argument va argumentlar ro'yxatini funktsiyangizga bog'laydi . Farqi shundaki, bind sizning funktsiyangizni chaqirmaydi; Buning o'rniga u () , .call yoki .apply bilan ishga tushirishingiz mumkin bo'lgan yangi funktsiyani qaytaradi, agar xohlasangiz, hozirgacha bog'lanmagan parametrlarga bog'lanish uchun ko'proq argumentlarni o'tkazing.
T SC bayrog'i: strictBindCallApply

Kodingizda .call , .apply va .bind dan xavfsiz foydalanish uchun tsconfig.json faylida strictBindCallApply opsiyasini yoqganingizga ishonch hosil qiling (agar siz qattiq rejimni yoqqan bo‘lsangiz, u avtomatik ravishda yoqiladi ). Buni yozish
Agar siz JavaScript-dan kelmasangiz, JavaScript-da bu o'zgaruvchi nafaqat sinflarda metod sifatida ishlaydigan funktsiyalar uchun emas, balki har bir funktsiya uchun aniqlanganligini bilib hayron bo'lishingiz mumkin. bu sizning funktsiyangizni qanday chaqirganingizga qarab boshqa qiymatga ega, bu esa uni mo'rt va aqlga sig'dirishni qiyinlashtirishi mumkin.
S hu sababli, ko'plab jamoalar buni sinf usullaridan tashqari hamma joyda taqiqlaydi - buni kod bazangiz uchun ham qilish uchun noinvalid-bu TSLint qoidasini yoqing.
Bu mo'rt bo'lishining sababi uni tayinlash usuli bilan bog'liq. Umumiy qoida shundaki, bu usulni chaqirganda nuqtaning chap tomonidagi narsaning qiymatini oladi. Masalan:

Download 1.81 Mb.

Do'stlaringiz bilan baham:
1   ...   38   39   40   41   42   43   44   45   ...   206




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