Turni kengaytirish TypeScript-ning turdagi xulosasi qanday ishlashini tushunish uchun kalit hisoblanadi. Umuman olganda, TypeScript sizning turlaringiz haqida xulosa chiqarishda yumshoq bo'ladi va mumkin bo'lgan eng aniq turdagi emas, balki umumiyroq turdagi xulosa chiqarish tarafida xato qiladi. Bu sizning dasturchi sifatida hayotingizni osonlashtiradi va matn terish mashinasining shikoyatlarini bostirishga kamroq vaqt sarflashni anglatadi.
3-bobda siz allaqachon ishlayotgan turdagi kengayishning bir nechta misollarini ko'rdingiz. Keling, yana bir nechta misollarni ko'rib chiqaylik.
O‘zgaruvchini keyinchalik mutatsiyaga yo‘l qo‘yadigan tarzda (masalan, let yoki var bilan ) e’lon qilganingizda, uning turi literal qiymatidan literal tegishli bo‘lgan asosiy turga kengaytiriladi:
ruxsat bering a = "x" // string let b = 3 // raqam var c = rost // mantiqiy konst d = { x : 3 } // {x: raqam}
enum E { X , Y , Z } ruxsat bering e = E . X // E
O'zgarmas deklaratsiyalar uchun bunday emas:
const a = "x" // 'x' const b = 3 // 3 konst c = rost // rost
enum E { X , Y , Z }
const e = E . X // EX
Turingiz kengaytirilishiga yo'l qo'ymaslik uchun aniq turdagi izohdan foydalanishingiz mumkin:
ruxsat bering a : "x" = "x" // 'x' ruxsat bering b : 3 = 3 // 3 var c : rost = rost // haqiqiy konst d : { x : 3 } = { x : 3 } // {x: 3}
let yoki var yordamida kengaytirilmagan turni qayta tayinlaganingizda , TypeScript uni siz uchun kengaytiradi. TypeScript-ga uni tor bo'lishini aytish uchun dastlabki deklaratsiyangizga aniq turdagi izoh qo'shing:
const a = "x" // 'x' ruxsat bering b = a // qator
const c : "x" = "x" // 'x' ruxsat bering d = c // 'x'
Null yoki undefined ga ishga tushirilgan o'zgaruvchilar har qandayiga kengaytiriladi :
Do'stlaringiz bilan baham: |