TypeScript nima qo‘shadi
TypeScript — bu JavaScript plyus tip tizimi. Siz deyarli o‘sha kodning o‘zini yozasiz, lekin har bir o‘zgaruvchi, parametr va qaytariladigan qiymat qanday turdagi qiymat bo‘lishi kerakligini belgilab qo‘yishingiz mumkin. So‘ngra tekshiruvchi bu belgilarni o‘qiydi va biror narsa mos kelmasa sizni ogohlantiradi — kod ishga tushishidan oldin.
function greet(name: string) {
return "Hello, " + name.toUpperCase();
}
greet("Ada"); // ok
greet(42); // Error: number is not assignable to stringBu ikkinchi chaqiruv oddiy JavaScriptda bug bo‘lib, uni faqat sahifa ishdan chiqqanda aniqlagan bo‘lardingiz. TypeScript esa uni siz yozayotgan paytdayoq ushlab qoladi.
Buglarni erta ushlash
Tiplarning qiymati shundaki, xatolar iloji boricha eng erta lahzada — brauzerda yoki produkshnda emas, balki muharriringizda, qizil to‘lqinsimon chiziq bilan — yuzaga chiqadi. U oldini oladigan keng tarqalgan buglar:
const user = { name: "Ada", age: 36 };
user.nmae; // Error: did you mean 'name'? (typo caught)
user.age.toUpperCase(); // Error: toUpperCase doesn't exist on numberShuningdek, u ajoyib avtoto‘ldirishni (autocomplete) ham quvvatlaydi. Muharrir sizning ma’lumotlaringiz shaklini bilgani uchun, qaysi xususiyat va metodlar mavjudligini aniq taklif qila oladi — siz taxmin qilish va hujjatlarni tekshirishga kamroq vaqt sarflaysiz.
TypeScript qanday ishlaydi: JS ga kompilyatsiya qilish
Brauzerlar va Node TypeScriptni to‘g‘ridan-to‘g‘ri tushunmaydi. Kodingiz ishga tushishidan oldin kompilyator barcha tip annotatsiyalarini olib tashlaydi va .ts ni oddiy .js ga aylantiradi. Bu qadam kompilyatsiya (yoki transpilyatsiya) deb ataladi.
// what you write (app.ts)
const count: number = 5;// what actually runs (app.js)
const count = 5;Tiplar faqat ishlab chiqish (development) davomida mavjud bo‘ladi. Runtime paytida TypeScriptdan hech narsa qolmaydi — ilovangiz ishlab turganda hech qanday tip tekshiruvi sodir bo‘lmaydi va tiplar bundle hajmingizga nol qo‘shadi. Ular brauzer uchun emas, siz uchun mo‘ljallangan vosita.
Amalda siz kompilyatorni qo‘lda kamdan-kam ishga tushirasiz — freymvorkingiz (Next.js, Vite va boshqalar) buni avtomatik bajaradi.
Tip inference — hamma narsani belgilashingiz shart emas
Boshlovchilarning keng tarqalgan xavotiri: "har bir narsani annotatsiya qilishim shartmi?" Yo‘q. TypeScript ko‘p tiplarni o‘zi inference qila oladigan darajada aqlli:
let count = 5; // TS infers: number
const name = "Ada"; // TS infers: string
const nums = [1, 2, 3]; // TS infers: number[]count ga son biriktirilgani uchun, TypeScript endi uni hamma joyda son sifatida ko‘radi. Siz asosan inference yordam bera olmaydigan joyda annotatsiya qo‘shasiz — eng muhimi, funksiya parametrlarida, chunki TypeScript chaqiruvchilar nima uzatishini taxmin qila olmaydi.
Fikrlash tarzidagi o‘zgarish
JavaScriptdan kelayotgan bo‘lsangiz, o‘zgarish kichik: oddiy kodni yozishda davom eting va niyatni aniqlashtiradigan yoki tekshiruvchi so‘ragan joylarga tip belgilarini qo‘shing. Buning natijasi — kamroq runtime ishdan chiqishlari, xavfsizroq refaktoringlar (biror narsani qayta nomlang, va har bir buzilgan joy yonib turadi) hamda kodingizni chindan ham tushunadigan muharrir.
Intervyu maslahatlari
- TypeScriptni "kodingiz ishga tushishidan oldin ishlaydigan tip tekshiruvchisiga ega JavaScript" deb tavsiflang.
- Tiplar tayping xatolari va noto‘g‘ri-tipli buglarni tahrirlash paytida ushlaydi hamda avtoto‘ldirishni quvvatlaydi.
- Kompilyatsiyani tushuntiring: tiplar olib tashlanib, oddiy JS hosil qilinadi; runtime paytida hech narsa tip tekshiruvidan o‘tmaydi va bundle xarajati nolga teng.
- Inference haqida eslatib o‘ting — siz har bir o‘zgaruvchini emas, balki parametrlar va murakkab joylarni annotatsiya qilasiz.
Muhokama
Hozircha izoh yo‘q
Muhokamada qatnashish uchun tizimga kiring.
KirishHozircha fikr yo‘q
Birinchi bo‘lib yozing: bu mavzuda nima yordam berdi — yoki nimani aniqroq tushuntirish kerak.