Bosh sahifa Wiki TypeScript

TypeScript

TypeScriptJavaScript asosida yaratilgan, unga statik tip tizimini qo‘shadigan dasturlash tili. TypeScript kodlari yakunda JavaScript’ga aylantiriladi va brauzer yoki Node.js muhitida ishlaydi.

TypeScript katta frontend, backend va full-stack loyihalarda kodni tartibli, xavfsizroq va boshqarish oson bo‘lishi uchun ishlatiladi.

Vazifasi

TypeScript JavaScript kodida ma’lumot turlarini oldindan belgilash imkonini beradi. Bu dasturchiga xatolarni kod bajarilishidan oldin aniqlashga yordam beradi.

TypeScript quyidagi vazifalarda ishlatiladi:

  • JavaScript kodiga type qo‘shish;
  • katta loyihalarda kodni tartibli saqlash;
  • xatolarni compile vaqtida aniqlash;
  • function, object va class tuzilmasini aniq belgilash;
  • frontend componentlar propslarini nazorat qilish;
  • API response formatlarini ifodalash;
  • backend service va DTO’lar bilan ishlash;
  • IDE autocomplete imkoniyatini yaxshilash.

Masalan, function faqat son qabul qilishi kerak bo‘lsa, TypeScript bu qoidani kod darajasida belgilash imkonini beradi.

TypeScript qanday ishlaydi?

TypeScript to‘g‘ridan-to‘g‘ri brauzerda ishlamaydigan til hisoblanadi. TypeScript kodlari avval JavaScript’ga compile qilinadi.

Oddiy jarayon:

  • dasturchi .ts yoki .tsx faylda TypeScript kod yozadi;
  • TypeScript compiler kodni tekshiradi;
  • type xatolari bo‘lsa, ularni ko‘rsatadi;
  • kod JavaScript’ga aylantiriladi;
  • hosil bo‘lgan JavaScript brauzer yoki Node.js’da ishlaydi.

TypeScript JavaScript’ning ustiga qurilgan. Shu sababli oddiy JavaScript kodi ko‘pincha TypeScript ichida ham ishlaydi.

Type

Type — ma’lumotning qanday turga tegishli ekanini bildiradi. TypeScript’da variable, function argumenti, function javobi, object maydoni va boshqa qiymatlarga type berish mumkin.

Asosiy typelar:

  • string — matn;
  • number — son;
  • boolean — true yoki false;
  • array — ro‘yxat;
  • object — obyekt;
  • null — bo‘sh qiymat;
  • undefined — qiymat belgilanmagan;
  • any — istalgan tur;
  • unknown — noma’lum tur;
  • void — qiymat qaytarmaydigan function;
  • never — hech qachon qiymat qaytarmaydigan holat.

Misol:

let name: string = "Ali";

Bu yerda name faqat string qiymat qabul qilishi kerak.

Static typing

Static typing — ma’lumot turlari kod bajarilishidan oldin tekshirilishini bildiradi. TypeScript shu xususiyat orqali JavaScript’da ko‘p uchraydigan ayrim xatolarni oldindan topishga yordam beradi.

Static typing quyidagi holatlarda ishlaydi:

  • noto‘g‘ri type berilganda;
  • function noto‘g‘ri argument olganda;
  • object ichida mavjud bo‘lmagan property chaqirilganda;
  • API response noto‘g‘ri ishlatilganda;
  • component propslari noto‘g‘ri uzatilganda.

Masalan, son bo‘lishi kerak bo‘lgan joyga matn berilsa, TypeScript xatolik ko‘rsatadi.

Type inference

Type inference — TypeScript qiymatga qarab type’ni o‘zi aniqlashi. Har doim ham type’ni qo‘lda yozish shart emas.

Misol:

let age = 25;

Bu holatda TypeScript age qiymatini number deb tushunadi.

Type inference quyidagi joylarda ishlaydi:

  • variable qiymatlarida;
  • function return qiymatlarida;
  • array elementlarida;
  • object maydonlarida;
  • class propertylarida.

Type inference kodni qisqaroq yozishga yordam beradi.

Interface

Interface — object tuzilmasini tasvirlash uchun ishlatiladi. Interface object ichida qanday maydonlar bo‘lishi va ularning type’i qanday ekanini belgilaydi.

Misol:

interface User { id: number; name: string; email: string; }

Bu interface User objectida id, name va email maydonlari bo‘lishi kerakligini bildiradi.

Interface quyidagi joylarda ishlatiladi:

Type alias

Type aliastype uchun alohida nom yaratish usuli. U oddiy type, union type, object yoki murakkab tuzilmalarni nomlashda ishlatiladi.

Misol:

type ID = number | string;

Type alias quyidagi holatlarda ishlatiladi:

Interface va type alias o‘xshash vazifalarda ishlatilishi mumkin, lekin ayrim imkoniyatlari farq qiladi.

Union type

Union type — qiymat bir nechta type’dan biri bo‘lishi mumkinligini bildiradi.

Misol:

let id: number | string;

Bu yerda id son ham, matn ham bo‘lishi mumkin.

Union type quyidagi holatlarda ishlatiladi:

  • ID son yoki string bo‘lganda;
  • status qiymatlari cheklanganda;
  • API’dan turli javoblar kelganda;
  • form qiymatlari har xil bo‘lganda;
  • optional holatlar bilan ishlaganda.

Masalan:

type Status = "active" | "inactive" | "blocked";

Bu type faqat uchta qiymatdan birini qabul qiladi.

Array

TypeScript’da array elementlarining type’ini belgilash mumkin.

Misol:

let numbers: number[] = [1, 2, 3];

Yoki:

let names: Array<string> = ["Ali", "Vali"];

Array type quyidagi joylarda ishlatiladi:

  • foydalanuvchilar ro‘yxati;
  • mahsulotlar ro‘yxati;
  • IDlar massivi;
  • taglar;
  • API’dan kelgan ro‘yxat;
  • selected itemlar.

Array ichida noto‘g‘ri type’dagi qiymat bo‘lsa, TypeScript xatolik ko‘rsatadi.

Object

TypeScript’da object ichidagi maydonlar va ularning type’lari aniq belgilanadi.

Misol:

let user: { id: number; name: string } = { id: 1, name: "Ali" };

Object type quyidagi ma’lumotlarni ifodalashda ishlatiladi:

  • foydalanuvchi profili;
  • mahsulot;
  • maqola;
  • buyurtma;
  • sozlamalar;
  • forma qiymatlari;
  • API javobi.

Katta object tuzilmalari uchun odatda interface yoki type alias ishlatiladi.

Function type

TypeScript’da function argumentlari va qaytaradigan qiymatiga type berish mumkin.

Misol:

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

Bu function faqat number argument qabul qiladi va number qaytaradi.

Function type quyidagi holatlarda muhim:

  • hisob-kitob functionlari;
  • API service functionlari;
  • event handlerlar;
  • callback functionlar;
  • validation functionlari;
  • utility functionlar.

Function return type noto‘g‘ri bo‘lsa, TypeScript xatolik beradi.

Optional property

Optional property — object ichidagi maydon bo‘lishi ham, bo‘lmasligi ham mumkinligini bildiradi. TypeScript’da optional property ? belgisi bilan yoziladi.

Misol:

interface User { id: number; phone?: string; }

Bu yerda phone majburiy emas.

Optional property quyidagi holatlarda ishlatiladi:

  • ixtiyoriy profil ma’lumotlari;
  • to‘ldirilmagan forma maydonlari;
  • API’da har doim kelmaydigan fieldlar;
  • sozlamalarda majburiy bo‘lmagan qiymatlar;
  • partial update ma’lumotlari.

Generic

Generictype’ni qayta ishlatiladigan va moslashuvchan qilish mexanizmi. Generic yordamida function, class yoki interface turli type bilan ishlay oladi.

Misol:

function identity<T>(value: T): T { return value; }

Bu function qanday type qabul qilsa, shunday type qaytaradi.

Generic quyidagi joylarda ishlatiladi:

  • API response type’lari;
  • reusable functionlar;
  • componentlar;
  • collectionlar;
  • service qatlamlari;
  • utility type’lar.

Generic TypeScript’da katta va moslashuvchan kod bazalarida ko‘p uchraydi.

Enum

Enum — oldindan belgilangan qiymatlar to‘plamini ifodalash uchun ishlatiladi.

Misol:

enum Role { Admin, User, Guest }

Enum quyidagi holatlarda ishlatilishi mumkin:

  • foydalanuvchi roli;
  • buyurtma statusi;
  • to‘lov holati;
  • xabar turi;
  • permission darajalari.

TypeScript’da enum o‘rniga union string type ham ko‘p ishlatiladi.

Any

Any — istalgan type’ni qabul qiladigan maxsus type. any ishlatilganda TypeScript type tekshiruvini deyarli chetlab o‘tadi.

Misol:

let data: any = "hello";

Keyin bu qiymatga son, object yoki boshqa qiymat berilishi mumkin.

any quyidagi holatlarda uchrashi mumkin:

  • eski JavaScript kodini TypeScript’ga o‘tkazishda;
  • type’i noma’lum tashqi kutubxona bilan ishlaganda;
  • vaqtinchalik test kodlarda;
  • murakkab ma’lumotni hali aniq belgilamagan holatda.

any TypeScript’ning type xavfsizligini kamaytiradi.

Unknown

Unknowntype’i noma’lum qiymatni ifodalash uchun ishlatiladi. unknown ham istalgan qiymatni qabul qiladi, lekin uni ishlatishdan oldin type tekshirish kerak bo‘ladi.

Misol:

let value: unknown = "text";

unknown quyidagi holatlarda ishlatiladi:

  • tashqi API javobi;
  • foydalanuvchi kiritgan noma’lum qiymat;
  • error object;
  • dynamic ma’lumotlar;
  • xavfsizroq any o‘rnida.

unknown type xavfsizligini saqlagan holda noma’lum qiymatlar bilan ishlash imkonini beradi.

TypeScript va JavaScript farqi

TypeScript va JavaScript o‘rtasidagi asosiy farq type tizimidadir.

Farqlar:

TypeScript JavaScript o‘rnini to‘liq bosadigan alohida platforma emas, balki JavaScript ustiga qo‘shimcha imkoniyatlar beradigan til hisoblanadi.

TSX

TSX — TypeScript va JSX birga ishlatiladigan fayl formati. U asosan React loyihalarida component yozish uchun ishlatiladi.

TSX fayllarda quyidagilar bo‘ladi:

Masalan, React component propslariga TypeScript interface orqali aniq type berish mumkin.

TypeScript config

TypeScript loyihalarda tsconfig.json fayli orqali sozlanadi. Bu fayl compiler qanday ishlashini belgilaydi.

tsconfig.json ichida quyidagi sozlamalar bo‘lishi mumkin:

TypeScript compiler shu fayl asosida kodni tekshiradi va compile qiladi.

Strict mode

Strict mode — TypeScript’da type tekshiruvni kuchaytiradigan sozlamalar to‘plami. U ko‘proq xatolarni oldindan aniqlashga yordam beradi.

Strict mode quyidagi tekshiruvlarni kuchaytiradi:

  • null va undefined bilan ishlash;
  • function argumentlari;
  • implicit any;
  • object propertylari;
  • class maydonlari;
  • type mosligi.

Strict mode katta loyihalarda kod sifatini oshirish uchun ishlatiladi.

Frontenddagi o‘rni

TypeScript zamonaviy frontend loyihalarda keng ishlatiladi. React, Vue, Angular, Next.js va Nuxt loyihalarida TypeScript componentlar, props, state va API response’larni aniq type bilan boshqarishga yordam beradi.

Frontend’da TypeScript quyidagi joylarda ishlatiladi:

Masalan, mahsulot kartasi componenti qanday props olishini TypeScript orqali aniq belgilash mumkin.

Backenddagi o‘rni

TypeScript Node.js backend loyihalarida ham ishlatiladi. Ayniqsa NestJS, Express.js, Fastify va Prisma bilan birga keng qo‘llanadi.

Backend’da TypeScript quyidagi joylarda ishlatiladi:

TypeScript backend kodida request, response, database va service qatlamlari orasidagi type mosligini boshqarishga yordam beradi.

Dasturlashdagi o‘rni

TypeScript JavaScript ekotizimidagi katta loyihalar uchun muhim texnologiyalardan biridir. U frontend, backend, desktop, mobile va full-stack loyihalarda ishlatilishi mumkin.

TypeScript ko‘p uchraydigan joylar:

TypeScript JavaScript imkoniyatlarini saqlagan holda kodga aniq type tizimini qo‘shadi.

Bog‘liq tushunchalar

JavaScript, Frontend, Backend, React, Vue, Node.js, API, JSON, Interface, Type, Function, Compiler