Programming TypeScript
sinf Zebra { trot() { // ... } } sinf
Download 1.81 Mb.
|
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 qiladiTypeScript-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: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling