TypeScript — bu JavaScript'ning kengaytirilgan versiyasi bo'lib, statik tip tizimini qo'shadi. 2026-yilda yangi loyihalarning 80% dan ko'prog'i TypeScript'da boshlanmoqda. Nega? Chunki u xatolarni oldindan aniqlaydi va kodning sifatini oshiradi.
Nima uchun TypeScript?
- Compile vaqtida xatolarni topish — runtime xatolar kamayadi
- IDE avtoto'ldirish va IntelliSense yaxshilanadi
- Kodni refactoring qilish osonlashadi
- Jamoaviy ishlashda dokumentatsiya vazifasini bajaradi
- Katta loyihalarda boshqarish osonlashadi
Asosiy tipler
// Primitiv tipler
let name: string = "ProCoders";
let age: number = 5;
let isActive: boolean = true;
let items: string[] = ["React", "Vue", "Angular"];
// Object tipler
interface User {
id: number;
name: string;
email: string;
role: "admin" | "editor" | "viewer";
createdAt?: Date; // optional
}
// Funksiya tipler
function greet(user: User): string {
return \`Salom, ${user.name}!\`;
}
// Generic tipler
function getFirst<T>(items: T[]): T | undefined {
return items[0];
}
Ilg'or xususiyatlar
// Utility Types
type PartialUser = Partial<User>; // Barcha maydonlar optional
type ReadonlyUser = Readonly<User>; // O'zgartirib bo'lmaydi
type UserName = Pick<User, "name" | "email">;
// Discriminated Unions
type Result =
| { status: "success"; data: User }
| { status: "error"; message: string };
function handleResult(result: Result) {
if (result.status === "success") {
console.log(result.data.name); // TypeScript biladi: data mavjud
} else {
console.error(result.message); // TypeScript biladi: message mavjud
}
}
TypeScript + React
interface ButtonProps {
label: string;
onClick: () => void;
variant?: "primary" | "secondary";
disabled?: boolean;
}
const Button: React.FC<ButtonProps> = ({
label, onClick, variant = "primary", disabled
}) => (
<button
className={variant}
onClick={onClick}
disabled={disabled}
>
{label}
</button>
);
TypeScript sizga 5 daqiqa vaqt oladi yozishda, lekin 5 soat vaqt tejaydi debug qilishda.
Boshlash
# TypeScript o'rnatish
npm install -D typescript
npx tsc --init
# tsconfig.json asosiy sozlamalar
{
"compilerOptions": {
"target": "ES2022",
"module": "ESNext",
"strict": true,
"outDir": "./dist"
}
}
Xulosa
TypeScript — bu investitsiya. Boshlang'ichda biroz ko'proq vaqt oladi, lekin uzoq muddatda loyihangiz sifati, barqarorligi va jamoaviy ishlash qulayligi oshadi. Agar hali boshlamagan bo'lsangiz — hozir boshlang.