Programming TypeScript


Download 1.81 Mb.
bet80/206
Sana01.11.2023
Hajmi1.81 Mb.
#1737990
1   ...   76   77   78   79   80   81   82   83   ...   206
Bog'liq
Boris Cherny Programming TypeScript Making Your JavaScript Applications (1)

sinf C {} ruxsat c : C = yangi C

enum E { F , G } ruxsat bering e : E = E . F

Shu nuqtai nazardan, C bizning C sinfimizning namuna turiga ishora qiladi .
Shu nuqtai nazardan, C C qiymatiga ishora qiladi .
Shu nuqtai nazardan, E bizning E enum turiga ishora qiladi .
Shu nuqtai nazardan, E E qiymatiga ishora qiladi .
Biz sinflar bilan ishlaganda, "bu o'zgaruvchi ushbu sinfning namunasi bo'lishi kerak" va enumlar uchun ham xuddi shunday deyish usuli kerak ("bu o'zgaruvchi ushbu raqamning a'zosi bo'lishi kerak"). Sinflar va sanamlar tip darajasida turlarni hosil qilganligi sababli, biz bu “is-a” munosabatini osongina ifodalay olamiz.26
Bundan tashqari, ish vaqtida sinfni ko'rsatish usuli kerak bo'ladi, shunda biz uni new bilan yaratishimiz, statik usullarni chaqirishimiz, u bilan metadasturlashni amalga oshirishimiz va instanceof bilan ishlashimiz mumkin - shuning uchun sinf ham qiymat yaratishi kerak.
Oldingi misolda C C sinfining misoliga ishora qiladi . C sinfining o'zi haqida qanday gapirasiz ? Biz typeof kalit so'zidan foydalanamiz (TypeScript tomonidan taqdim etilgan tur operatori, bu JavaScript-ning qiymat darajasidagi typeof- ga o'xshaydi, lekin turlar uchun).
StringDatabase sinfini yarataylik - dunyodagi eng oddiy ma'lumotlar bazasi:
turi Davlat = {
[ kalit : string ] : ip
}
sinf StringDatabase { holat : Davlat = {}
get ( kalit : string ) : ip | null {
qaytish kalit ichida bu . davlat ? bu . holati [ kalit ] : null
}
set ( kalit : string , qiymat : string ) : bekor {
bu . holati [ kalit ] = qiymat
}
statik dan ( davlat : Davlat ) { ruxsat db = yangi StringMa'lumotlar bazasi uchun ( kelsin kalit ichida davlat ) { db . o'rnatish ( kalit , holat [ kalit ])
} qaytish db
}
}
Ushbu sinf deklaratsiyasi qanday turlarni yaratadi? StringDatabase misol turi :

Download 1.81 Mb.

Do'stlaringiz bilan baham:
1   ...   76   77   78   79   80   81   82   83   ...   206




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