๐Ÿ”ท
Veb-sayt

TypeScript asoslari: JavaScript'ga tip xavfsizligini qo'shish

31.08.2025
โ† Barcha maqolalar

TypeScript so'nggi yillarda veb-dasturlash dunyosida eng tez tarqalgan tillardan biriga aylandi va buning sababi tasodifiy emas. Aslida TypeScript butunlay yangi til emas, balki JavaScript ustiga qurilgan qatlam bo'lib, unga tip tizimini qo'shadi. Ya'ni siz yozadigan har bir narsa baribir JavaScript bo'lib qoladi, lekin kompilyator yordamida kod ishga tushishidan oldin ko'plab xatolarni tutib olish imkoniyatiga ega bo'lasiz. Microsoft tomonidan ishlab chiqilgan bu til bugungi kunda React, Angular, Vue va Node.js loyihalarining katta qismida standart vositaga aylanib bormoqda.

Nega TypeScript kerak

JavaScript dinamik tipli til bo'lganligi sababli, o'zgaruvchining qanday qiymat saqlashini oldindan bilib bo'lmaydi. Bu kichik skriptlar uchun qulay, ammo loyiha o'sib borgani sari muammoga aylanadi. Masalan, siz funksiyaga raqam o'rniga matn yuborib qo'ysangiz, JavaScript buni faqat kod ishga tushganda, ko'pincha foydalanuvchi sahifani ochganda xato sifatida ko'rsatadi. TypeScript esa bu xatoni siz hali kod yozayotganingizda, muharrir oynasida qizil chiziq bilan belgilab beradi.

Bundan tashqari, tip ma'lumotlari muharriringizga aqlli avtokomplit imkonini beradi. Obyektning qanday maydonlari borligini, funksiya qanday argument kutayotganini muharrir o'zi bilib turadi va sizga taklif qiladi. Katta jamoada ishlayotganda bu yana ham muhim, chunki tiplar kodning o'zini hujjatga aylantiradi va boshqa dasturchilar sizning funksiyangizdan qanday foydalanishni darrov tushunadi. Aynan shu sabablardan yirik loyihalarda TypeScript deyarli majburiy holatga aylangan.

Tip annotatsiyasi va asosiy tushunchalar

TypeScript bilan ishlashni boshlash juda oson, chunki har qanday JavaScript kodi allaqachon to'g'ri TypeScript hisoblanadi. Eng birinchi qadam o'zgaruvchilar va funksiyalarga tip annotatsiyasini qo'shishdir. Quyidagi misolda funksiya ikkita raqam qabul qilib, raqam qaytarishini aniq ko'rsatamiz, shunda noto'g'ri tur yuborilsa kompilyator darrov ogohlantiradi.

function summa(a: number, b: number): number {
  return a + b;
}

let ism: string = "Aziz";
let yosh: number = 25;
let faolmi: boolean = true;

summa(5, 10);      // to'g'ri
summa(5, "10");    // xato: string number emas

Murakkabroq tuzilmalar uchun interface va type ishlatiladi. Interface obyektning shaklini, ya'ni qanday maydonlari va ularning turlari borligini tasvirlaydi. Type esa o'xshash vazifani bajaradi, lekin undan tashqari union turlar va boshqa murakkab kombinatsiyalar uchun ham mos keladi.

interface Foydalanuvchi {
  id: number;
  ism: string;
  email?: string; // ixtiyoriy maydon
}

type Holat = "faol" | "bloklangan" | "kutilmoqda";

function salom(u: Foydalanuvchi): string {
  return "Salom, " + u.ism;
}

Union turlar va generics

Union turlar bir o'zgaruvchi bir nechta turdagi qiymat saqlashi mumkinligini bildiradi. Yuqoridagi Holat tipi bunga yaxshi misol, chunki o'zgaruvchi faqat uchta aniq qiymatdan birini ololadi va boshqa matn yozsangiz xato chiqadi. Generics esa kodni qayta ishlatish uchun eng kuchli vositadir, u funksiyaga turni parametr sifatida berish imkonini beradi.

function birinchi<T>(massiv: T[]): T {
  return massiv[0];
}

const raqam = birinchi<number>([1, 2, 3]); // number
const soz = birinchi<string>(["a", "b"]);   // string

Bu yerda T har qanday turni anglatadi va funksiya qaysi tur bilan chaqirilsa, o'shanga moslashadi. Shu tariqa bir funksiya raqamlar bilan ham, matnlar bilan ham, obyektlar bilan ham xavfsiz ishlaydi va har safar tip ma'lumotini saqlab qoladi.

JavaScript loyihasini TypeScriptga o'tkazish

Mavjud JavaScript loyihasini birdaniga to'liq o'zgartirish shart emas. Ko'pchilik jamoalar bosqichma-bosqich yondashuvni tanlaydi: avval tsconfig.json faylini yaratib, fayllarni bittalab .ts kengaytmasiga o'tkazadi. Kompilyatsiya jarayoni tsc buyrug'i orqali amalga oshiriladi, u TypeScript kodini brauzer va Node.js tushunadigan oddiy JavaScriptga aylantiradi.

# TypeScript o'rnatish
npm install -D typescript

# konfiguratsiya yaratish
npx tsc --init

# kodni kompilyatsiya qilish
npx tsc

Bu jarayonda strict rejimini yoqish tavsiya etiladi, chunki u eng qattiq tekshiruvlarni faollashtiradi va kelajakda yuzaga keladigan ko'plab muammolarni oldini oladi. Boshida bu biroz ko'p ogohlantirish berishi mumkin, ammo uzoq muddatda kod sifatini sezilarli darajada oshiradi.

Kuchli tomonlari va qachon kerak emasligi

TypeScript kodni ishonchli qiladi, xatolarni erta tutadi va katta jamoalarda hamkorlikni osonlashtiradi. Shu bilan birga uning o'rganish egriligi mavjud va loyihaga qo'shimcha sozlash hamda kompilyatsiya bosqichini olib keladi. Agar siz juda kichik, bir martalik skript yozayotgan bo'lsangiz yoki tez prototip qilayotgan bo'lsangiz, oddiy JavaScript yetarli bo'lishi mumkin. Ammo loyiha o'sib boradigan, bir necha oy yoki yillar davomida saqlanadigan va bir nechta dasturchi ustida ishlaydigan har qanday jiddiy mahsulot uchun TypeScript sarmoyaga arziydigan tanlovdir. Aynan shuning uchun ko'plab kompaniyalar yangi loyihalarni to'g'ridan-to'g'ri TypeScriptda boshlashni afzal ko'radi.

O'xshash maqolalar

๐ŸŒพ Qishloq xo'jaligi va agrobiznes sayti: mahsulotlar katalogi va B2B sotuv โค๏ธ Xayriya fondi sayti: shaffof xayriya yig'ish va donator ishonchi ๐ŸŽ‰ Toyxona va banket zali sayti: tadbir tashkil qilish va onlayn bron qilish ๐Ÿš™ Avtoulov ijarasi sayti: avtomobil katalog, narx kalkulyatori va onlayn bron
๐ŸŒ Til
๐Ÿ‡บ๐Ÿ‡ฟ O'zbek โœ“ ๐Ÿ‡บ๐Ÿ‡ฟ ะŽะทะฑะตะบ ๐Ÿ‡ท๐Ÿ‡บ ะ ัƒััะบะธะน ๐Ÿ‡ฌ๐Ÿ‡ง English