Programming TypeScript


sinf Zebra { trot() { // ... } } sinf


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

sinf Zebra { trot() { // ...
}
}
sinf Pudel { trot() { // ...
}
}
funktsiyasi ambleAround ( hayvon : Zebra ) {
hayvon . yugurish () }
ruxsat bering zebra = yangi Zebra ruxsat pudel = yangi Pudel
ambleAround ( zebra ) // OK ambleAround ( pudel ) // OK
Orangizdagi filogenetiklar bilishicha, zebra pudel emas, lekin TypeScript bunga qarshi emas! Poodle Zebra ga tayinlanishi mumkin ekan , TypeScript u bilan mos keladi, chunki bizning funktsiyamiz nuqtai nazaridan ikkalasi bir-birini almashtiradi; Bu , bularning barchasini amalga oshirishdir . Agar siz sinflarni nominal ravishda yozadigan deyarli har qanday boshqa tildan foydalansangiz, bu kod xatolikka yo'l qo'ygan bo'lar edi; ammo TypeScript tizimli ravishda yoziladi, shuning uchun bu kod juda maqbuldir.
Ushbu qoidadan istisno xususiy yoki himoyalangan maydonlarga ega bo'lgan sinflardir: shakl sinfga tayinlanishi yoki berilmasligini tekshirishda, agar sinfda shaxsiy yoki himoyalangan maydonlar mavjud bo'lsa va shakl ushbu sinf yoki kichik sinfning namunasi bo'lmasa. o'sha sinf, keyin shakl sinfga tayinlanmaydi:
sinf A { xususiy x = 1
}
sinf B uzaytiradi { } funksiyasi f ( a : A ) {}
Sinflar tizimli ravishda yozilgan
f ( yangi A ) // OK f ( yangi B ) // OK
f ({ x : 1 }) // TS2345 xatosi: '{x: number}' tipidagi argument emas // "A" tipidagi parametrga tayinlanishi mumkin. "x" xossa // "A" turida shaxsiy, lekin "{x: raqam}" turida emas.

Sinflar qiymatlarni ham, turlarni ham e'lon qiladi


TypeScript-da ifodalashingiz mumkin bo'lgan ko'p narsalar qiymatlar yoki turlardir:
// qiymatlar ruxsat bering a = 1999 yil funktsiyasi b() { }
// turlari turi a = raqam interfeysi b {
() : bekor
}
TypeScript-da turlar va qiymatlar alohida nomlar maydonida joylashgan. Siz atamani qanday ishlatishingizga qarab ( bu misolda a yoki b ), TypeScript uni turga yoki qiymatga hal qilishni biladi:
// ... agar ( a + 1 > 3 ) //... // TypeScript kontekstdan siz a let qiymatini nazarda tutayotganingizni ko'rsatadi x : a = 3 // TypeScript kontekstdan siz a turini nazarda tutayotganingizni ko'rsatadi. Ushbu kontekstli atama o'lchamlari juda yaxshi va bizga hamrohlik turlarini amalga oshirish kabi ajoyib ishlarni bajarishga imkon beradi ( 140-betdagi “Hamkor ob'ekt namunasi” ga qarang ).
Sinflar va sanalar alohida. Ular noyobdir, chunki ular nomlar maydonidagi turni ham, qiymat nomlari maydonidagi qiymatni ham yaratadi:

Download 1.81 Mb.

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




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