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.
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 uchuntypedan foydalaning.
Best Practices:
- Obyekt shakllari va umumiy API’larni aniqlash uchun
interfacedan foydalaning. - Birlashmalar, kesishmalar va primitivlar uchun
typedan 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‘rnigainterface’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!
