Programming TypeScript


Download 1.81 Mb.
bet136/206
Sana01.11.2023
Hajmi1.81 Mb.
#1737990
1   ...   132   133   134   135   136   137   138   139   ...   206
Bog'liq
Boris Cherny Programming TypeScript Making Your JavaScript Applications (1)

Kimdan

Hech kimdan

Ba'zilarga

Ba'zi

Yo'q

Hech kimga

Yo'q

Yo'q

Ya'ni, biz bilamizki, None ustidan xaritalash har doim None ga olib keladi va Some bo'yicha xaritalash f qanday chaqiruvni qaytarishiga qarab, yo Some yoki None ga olib keladi. Biz bundan foydalanamiz va flatMap-ga aniqroq turlarni berish uchun haddan tashqari yuklangan imzolardan foydalanamiz:
interfeys Variant < T > {
flatMap < U > ( f : ( qiymat : T ) => Yo'q ) : Yo'q flatMap < U > ( f : ( qiymat : T ) => Variant < U > ) : Variant < U >
getOrElse ( qiymati : T ) : T
}
sinf Ba'zilari < T > asboblar Variant < T > { konstruktor ( xususiy qiymat : T ) {} flatMap < U > ( f : ( qiymat : T ) => Yo'q ) : Yo'q flatMap < U > ( f : ( qiymat : T ) => Ayrimlari < U > ) : Ayrimlari < U > flatMap < U > ( f : ( qiymat : T ) => Variant < U > ) : Variant < U > {
qaytish f ( bu . qiymat )
}
getOrElse () : T { qaytish bu . qiymat
}
}
sinf Yo'q asboblar Variant < hech qachon > {
flatMap () : Hech biri { qaytmaydi bu
}
getOrElse < U > ( qiymati : U ) : U {
qaytish qiymat
}
}
Biz deyarli tugatdik. Faqat Option funksiyasini amalga oshirish qoladi , biz undan yangi Option s ni yaratish uchun foydalanamiz . Biz allaqachon Variantni amalga oshirdik interfeys sifatida yozing ; Endi biz 140- betdagi “Hamkor ob’yekt namunasi” da qilganimizga o‘xshash yangi Variant yaratish usuli sifatida bir xil nomdagi funktsiyani (TypeScript-da turlar va qiymatlar uchun ikkita alohida nom maydoni borligini unutmang) amalga oshirmoqchimiz. . Agar foydalanuvchi null yoki undefined ga o'tsa, biz ularga Yo'q ni qaytaramiz ; aks holda, biz Some ni qaytaramiz . Yana bir bor buni amalga oshirish uchun imzoni ortiqcha yuklaymiz:


Download 1.81 Mb.

Do'stlaringiz bilan baham:
1   ...   132   133   134   135   136   137   138   139   ...   206




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