TypeScript tip aliaslari va interfeyslar


TypeScript turlarni ularni ishlatadigan o‘zgaruvchilardan alohida aniqlash imkonini beradi.

Taxalluslar va interfacelar turlarni turli o‘zgaruvchilar/obyektlar o‘rtasida osongina almashish imkonini beradi.


ULASHISH

Taxalluslarni kiriting

Tip taxalluslari (Type Aliases) tiplarni maxsus nom (Alias) bilan aniqlash imkonini beradi.

Taxalluslar string kabi primitivlar yoki objects va arrays kabi murakkabroq turlar uchun ishlatilishi mumkin:

Misol

type CarYear = number
type CarType = string
type CarModel = string
type Car = {
  year: CarYear,
  type: CarType,
  model: CarModel
}

const carYear: CarYear = 2001
const carType: CarType = "Toyota"
const carModel: CarModel = "Corolla"
const car: Car = {
  year: carYear,
  type: carType,
  model: carModel
};
O‘zingiz sinab ko‘ring »

Misol: Birlashma va kesishish turlari

type Animal = { name: string };
type Bear = Animal & { honey: boolean };
const bear: Bear = { name: "Winnie", honey: true };

type Status = "success" | "error";
let response: Status = "success";

Interfacelar

Interfacelar tipdagi taxalluslarga o‘xshaydi, faqat ular only object turlariga taalluqlidir.

Misol

interface Rectangle {
  height: number,
  width: number
}

const rectangle: Rectangle = {
  height: 20,
  width: 10
};
O‘zingiz sinab ko‘ring »

Misol: Interfeysni birlashtirish

interface Animal { name: string; } interface Animal { age: number; } const dog: Animal = { name: "Fido", age: 5 };

Turi va interfeysi: asosiy farqlar

  • Extending: Ikkalasini ham kengaytirish mumkin, lekin interfacelar deklaratsiyani birlashtirishni qo‘llab-quvvatlaydi.
  • Unions/Intersections: Faqat turdagi taxalluslar birlashma va kesishuv turlarini qo‘llab-quvvatlaydi.
  • Implements: Sinflar ikkalasini ham amalga oshirishi mumkin.
  • Recommendation: Obyektlar uchun interface, qolgan hamma narsa uchun type dan foydalaning.

Best Practices:

  • Obyekt shakllari va umumiy API’larni aniqlash uchun interface dan foydalaning.
  • Birlashmalar, kesishmalar va primitivlar uchun type dan foydalaning.
  • Turlar uchun merosga ko‘ra kompozitsiyani afzal ko‘ring.
  • Aniqlik uchun turlaringiz va interfeyslaringizni hujjatlang.

Common Pitfalls:

  • Deklaratsiyalarni birlashtirish (declaration merging) kerak bo‘lganda type’dan foydalanish (buning o‘rniga interface’dan foydalaning).
  • Haddan tashqari murakkab turlar - ularni sodda va diqqatli tuting.
  • Kod rivojlanishi bilan turlarni/interfeyslarni yangilashni unutish.


Kengaytirilgan interfacelar

Interfacelar bir-birining ta’rifini kengaytirishi mumkin.

Extending interface degani siz original bilan bir xil xususiyatlarga ega yangi interface, shuningdek, yangi narsa yaratayotganingizni anglatadi.

Misol

interface Rectangle {
  height: number,
  width: number
}

interface ColoredRectangle extends Rectangle {
  color: string
}

const coloredRectangle: ColoredRectangle = {
  height: 20,
  width: 10,
  color: "red"
};
O‘zingiz sinab ko‘ring »



W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!