Programming TypeScript


turi HasSides = { numberOfSides : raqam } turi


Download 1.81 Mb.
bet64/206
Sana01.11.2023
Hajmi1.81 Mb.
#1737990
1   ...   60   61   62   63   64   65   66   67   ...   206
Bog'liq
Boris Cherny Programming TypeScript Making Your JavaScript Applications (1)

turi HasSides = { numberOfSides : raqam } turi Yonlarning uzunligi = { sideLength : raqam }
funktsiyasi logPerimetr <

Shakl uzaytiradi HasSides & Yonlarning uzunligi
> ( lar : Shakl ) : Shakl {
konsol . log ( s . numberOfSides * s . yon uzunligi )
qaytish s }
turi Kvadrat = HasSides & SidesHaveLength ruxsat bering kvadrat : kvadrat = { numberOfSides : 4 , sideLength : 3 } logPerimeter ( kvadrat ) // Kvadrat, loglar "12"

logPerimeter - Shape tipidagi bitta argumentni oladigan funksiya .
Shakl - bu HasSides turini ham, SidesHaveLength turini ham kengaytiruvchi umumiy tur . Boshqacha qilib aytganda, Shaklning hech bo'lmaganda uzunligi bo'lgan tomonlari bo'lishi kerak. logPerimeter siz bergan bir xil turdagi qiymatni qaytaradi.
Arityni modellashtirish uchun chegaralangan polimorfizmdan foydalanish

Cheklangan polimorfizmdan foydalanish mumkin bo'lgan yana bir joy - bu variadik funktsiyalarni (har qanday miqdordagi argumentlarni qabul qiladigan funktsiyalar) modellashdir. Misol uchun, keling, JavaScript-ning o'rnatilgan qo'ng'iroq funksiyasining o'z versiyasini amalga oshiraylik (eslatma sifatida, chaqiruv funksiya va o'zgaruvchan sonli argumentlarni qabul qiladigan va bu argumentlarni funktsiyaga qo'llaydigan funktsiyadir). 23Keyinchalik to'ldiradigan turlar uchun noma'lumdan foydalanib, uni shunday aniqlaymiz va ishlatamiz :
funktsiyasi qo'ng'iroq qilish (
f : (... args : noma'lum []) => noma'lum ,
... args : noma'lum []
) : noma'lum { qaytish f (... args ) }
funktsiyasi to'ldirish ( uzunlik : raqam , qiymat : satr ) : string [] {
qaytish Massiv . dan ({ uzunlik }, () => qiymat )}
chaqiruv ( to'ldirish , 10 , 'a' ) // 10 'a massiviga baholaydi
noma'lum s ni to'ldiramiz . Biz ifodalamoqchi bo'lgan cheklovlar quyidagilardir:
• f ba'zi T argumentlar to'plamini oladigan va qandaydir turdagi qaytaruvchi funksiya bo'lishi kerak
R . Oldindan qancha argumentlar bo'lishini bilmaymiz.

  • qo'ng'iroq f ni , f o'zi oladigan T argumentlar to'plamini oladi . Shunga qaramay, biz qancha argumentlarni oldindan kutish kerakligini aniq bilmaymiz.

  • qo'ng'iroq f qaytaradigan R turini qaytaradi .

Bizga ikkita turdagi parametrlar kerak bo'ladi: T , bu argumentlar massivi va R ixtiyoriy qaytariladigan qiymat. Keling, turlarni to'ldiramiz:

Download 1.81 Mb.

Do'stlaringiz bilan baham:
1   ...   60   61   62   63   64   65   66   67   ...   206




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