Utility Types

TypeScript-dagi Utility Types

TypeScript Utility Turlari

TypeScript ko'plab foydali turlar bilan birga keladi, ular odatda utility turlari deb ataladi. Ushbu bobda eng mashhur utility turlari qamrab olingan.

Partial

Partial obyektdagi barcha xususiyatlarni ixtiyoriy qilib o'zgartiradi.

Misol:

interface Point {
  x: number;
  y: number;
}
 
let pointPart: Partial<Point> = {}; // `Partial` x va y ni ixtiyoriy qiladi
pointPart.x = 10;

Required

Required obyektdagi barcha xususiyatlarni majburiy qilib o'zgartiradi.

Misol:

interface Car {
  make: string;
  model: string;
  mileage?: number;
}
 
let myCar: Required<Car> = {
  make: 'Ford',
  model: 'Focus',
  mileage: 12000 // `Required` mileage ni belgilangan bo'lishini ta'minlaydi
};

Record

Record ma'lum bir kalit turi va qiymat turi bilan obyekt turini aniqlash uchun qisqa yo'l.

Misol:

const nameAgeMap: Record<string, number> = {
  'Alice': 21,
  'Bob': 25
};

Record<string, number> { [key: string]: number } bilan teng.

Omit

Omit obyekt turidan kalitlarni olib tashlaydi.

Misol:

interface Person {
  name: string;
  age: number;
  location?: string;
}
 
const bob: Omit<Person, 'age' | 'location'> = {
  name: 'Bob'
  // `Omit` age va location ni turdan olib tashlaydi, ular bu yerda aniqlanishi mumkin emas
};

Pick

Pick obyekt turidan faqat ko'rsatilgan kalitlarni saqlaydi.

Misol:

interface Person {
  name: string;
  age: number;
  location?: string;
}
 
const bob: Pick<Person, 'name'> = {
  name: 'Bob'
  // `Pick` faqat name ni saqlaydi, age va location turdan olib tashlanadi va bu yerda aniqlanishi mumkin emas
};

Exclude

Exclude birikkandagi turlardan ba'zilarini olib tashlaydi.

Misol:

type Primitive = string | number | boolean
const value: Exclude<Primitive, string> = true; // string bu yerda ishlatilishi mumkin emas, chunki Exclude uni turdan olib tashlaydi.

ReturnType

ReturnType funksiya turining qaytish turini chiqarib oladi.

Misol:

type PointGenerator = () => { x: number; y: number; };
const point: ReturnType<PointGenerator> = {
  x: 10,
  y: 20
};

Parameters

Parameters funksiya turining parametr turlarini massiv sifatida chiqarib oladi.

Misol:

type PointPrinter = (p: { x: number; y: number; }) => void;
const point: Parameters<PointPrinter>[0] = {
  x: 10,
  y: 20
};

Readonly

Readonly barcha xususiyatlar faqat o'qilishi mumkin bo'lgan yangi tur yaratish uchun ishlatiladi, ya'ni qiymat belgilanganidan so'ng o'zgartirilishi mumkin emas.

TypeScript bu holatni kompilyatsiya vaqtida oldini oladi, lekin nazariy jihatdan JavaScriptga kompilatsiya qilinganida siz hali ham readonly xususiyatni o'zgartirishingiz mumkin.

Misol:

interface Person {
  name: string;
  age: number;
}
const person: Readonly<Person> = {
  name: "Dylan",
  age: 35,
};
person.name = 'Israel'; // prog.ts(11,8): error TS2540: Cannot assign to 'name' because it is a read-only property.

Ushbu sahifada

GitHubda tahrirlash