Funksiya parametrlari va qaytish qiymatlarini tiplash
Annotatsiyalar eng ko'p aynan funksiyalarda muhim, chunki TypeScript chaqiruvchi (caller) nima uzatishini taxmin qila olmaydi. Har bir parametrni tiplang va ixtiyoriy ravishda qaytish qiymatini ham:
function add(a: number, b: number): number {
return a + b;
}
add(2, 3); // 5
add(2, "3"); // Error: string not assignable to numberQavslardan keyingi : number — bu qaytish tipi (return type). Odatda uni tushirib qoldirsangiz bo'ladi — TypeScript uni siz qaytargan qiymatdan chiqarib oladi (infer qiladi) — ammo uni yozish funksiyangiz siz mo'ljallagan narsani qaytarishini tekshiruvchi vazifasini bajaradi.
Arrow funksiyalar ham xuddi shunday ishlaydi:
const multiply = (a: number, b: number): number => a * b;Ixtiyoriy va standart (default) parametrlar
? belgisi parametrni ixtiyoriy deb belgilaydi; funksiya ichida u undefined bo'lishi mumkin:
function greet(name: string, title?: string) {
return title ? `${title} ${name}` : name;
}
greet("Ada"); // ok — title omitted
greet("Ada", "Dr."); // okStandart qiymat ham parametrni ixtiyoriy qiladi va unga zaxira (fallback) qiymat beradi:
function greet(name: string, greeting = "Hello") {
return `${greeting}, ${name}`;
}TypeScript greeting ni uning standart qiymatidan string sifatida infer qiladi — annotatsiya kerak emas.
Hech narsa qaytarmaydigan funksiyalar
Agar funksiya qiymat qaytarmasa, uning qaytish tipi void bo'ladi:
function log(message: string): void {
console.log(message);
}Sizning birinchi interfeysingiz
Interface obyektning shaklini (shape) tasvirlaydi — unda qanday xususiyatlar (property) borligini va ularning tiplarini. Bu ma'lumotlar strukturasiga nom berishning usulidir:
interface User {
name: string;
age: number;
isAdmin: boolean;
}Endi siz User ni tip kutilayotgan har qanday joyda ishlatishingiz mumkin:
function greetUser(user: User): string {
return `Hi, ${user.name}`;
}
const ada: User = { name: "Ada", age: 36, isAdmin: true };
greetUser(ada); // okAgar obyektda biror xususiyat yetishmasa yoki noto'g'ri tipda bo'lsa, TypeScript e'tiroz bildiradi:
const bad: User = { name: "Ada" };
// Error: missing 'age' and 'isAdmin'Interfeyslardagi ixtiyoriy xususiyatlar
Xuddi parametrlar kabi, obyekt xususiyatlari ham ? bilan ixtiyoriy bo'lishi mumkin:
interface User {
name: string;
email?: string; // may or may not be present
}
const u1: User = { name: "Ada" }; // ok
const u2: User = { name: "Alan", email: "a@x.com" }; // okNega interfeyslar arziydi
Shakl bir marta nom olgach, siz uni bir marta yozasiz va funksiyalar, massivlar hamda qaytish tiplari bo'ylab qayta ishlatasiz. Biror maydonni (field) o'zgartirsangiz yoki qo'shsangiz, User dan foydalanadigan har bir joy o'z tekshiruvlarini avtomatik yangilaydi. Ana shu izchillik — hamda har qanday User qiymatida oladigan avtomatik to'ldirish (autocomplete) — ma'lumotlaringizni tiplashning kundalik samarasidir.
Intervyu maslahatlari
- Funksiya parametrlarini har doim tiplang; qaytish tipi ko'pincha infer qilinadi, ammo niyatni mustahkamlash uchun uni yozib qo'yish mumkin.
- Ixtiyoriy parametrlar/xususiyatlar uchun
?dan foydalaning; standart qiymat ham parametrni ixtiyoriy qiladi. void— hech narsa qaytarmaydigan funksiyalar uchun qaytish tipidir.- Interface obyektning shakliga nom beradi, shunda uni qayta ishlatishingiz va yetishmayotgan/noto'g'ri maydonlarni ushlab qolishingiz mumkin.
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.