Sobes.tech
Middle

TypeScript'dagi utilitar turlar haqida gapirib bering.

sobes.tech AI

AIdan javob

TypeScript'dagi utilitar turlar mavjud bo'lib, ular mavjud ma'lumot turlarini yangi turlarga aylantirishga imkon beradi va turli foydali operatsiyalarni bajaradi. Ular turlarni moslashuvchanligini va qayta ishlatilishini oshirishga yordam beradi va kod takrorlanishini kamaytiradi.

Asosiy utilitar turlar:

  • Partial<Type>: Type ning barcha xususiyatlarini ixtiyoriy qiladi.

    interface User {
      id: number;
      name: string;
      age: number;
    }
    
    type PartialUser = Partial<User>;
    // PartialUser { id?: number; name?: string; age?: number; }
    
  • Readonly<Type>: Type ning barcha xususiyatlarini faqat o'qish uchun qiladi.

    interface Point {
      x: number;
      y: number;
    }
    
    type ReadonlyPoint = Readonly<Point>;
    // ReadonlyPoint { readonly x: number; readonly y: number; }
    
  • Pick<Type, Keys>: Type dan ma'lum xususiyatlarni tanlab oladi.

    interface Product {
      id: number;
      name: string;
      price: number;
      description: string;
    }
    
    type ProductSummary = Pick<Product, 'id' | 'name' | 'price'>;
    // ProductSummary { id: number; name: string; price: number; }
    
  • Omit<Type, Keys>: Type dan ma'lum xususiyatlarni chiqarib tashlaydi.

    interface Order {
      id: number;
      productId: number;
      quantity: number;
      timestamp: string;
    }
    
    type OrderDetails = Omit<Order, 'timestamp'>;
    // OrderDetails { id: number; productId: number; quantity: number; }
    
  • Exclude<Type, ExcludedUnion>: Type dan ExcludedUnion ga mos keladigan elementlarni chiqarib tashlaydi.

    type Colors = 'red' | 'green' | 'blue' | 'yellow';
    type PrimaryColors = Exclude<Colors, 'yellow'>;
    // PrimaryColors 'red' | 'green' | 'blue'
    
  • Extract<Type, Union>: Type dan Union ga mos keladigan elementlarni tanlab oladi.

    type AllAnimals = 'dog' | 'cat' | 'fish' | 'bird';
    type PetAnimals = Extract<AllAnimals, 'dog' | 'cat'>;
    // PetAnimals 'dog' | 'cat'
    
  • NonNullable<Type>: Type dan null va undefined qiymatlarni chiqarib tashlaydi.

    type MaybeString = string | null | undefined;
    type NotNullableString = NonNullable<MaybeString>;
    // NotNullableString string
    
  • Record<Keys, Type>: Kalitlari Keys dan va qiymatlari Type bo'lgan ob'ekt turini yaratadi.

    type CityPopulation = Record<string, number>;
    // CityPopulation { [key: string]: number }
    
    const population: CityPopulation = {
      "Moscow": 12635466,
      "Saint Petersburg": 5381033,
    };
    
  • Parameters<Type>: Type funksiyasining parametrlarining turlaridan tuzilgan tuple ni qaytaradi.

    function greet(name: string, age: number): string {
      return `Hello, ${name}! You are ${age}.`;
    }
    
    type GreetParams = Parameters<typeof greet>;
    // GreetParams [name: string, age: number]
    
  • ReturnType<Type>: Type funksiyasining qaytish qiymatining turini qaytaradi.

    function calculateSum(a: number, b: number): number {
      return a + b;
    }
    
    type SumResult = ReturnType<typeof calculateSum>;
    // SumResult number
    
  • ConstructorParameters<Type>: Type klassining konstruktor parametrlarining turlaridan tuzilgan tuple yoki massiv.

    class MyClass {
      constructor(name: string, id: number) {}
    }
    
    type MyClassParams = ConstructorParameters<typeof MyClass>;
    // MyClassParams [name: string, id: number]
    
  • InstanceType<Type>: Type klassining instans turini qaytaradi.

    class AnotherClass {
      value: string;
      constructor(v: string) {
        this.value = v;
      }
    }
    
    type AnotherClassInstance = InstanceType<typeof AnotherClass>;
    // AnotherClassInstance AnotherClass
    

Utility turlaridan foydalanish kodni xavfsiz, qo‘llab-quvvatlanadigan va ifodali qiladi, murakkab ma'lumot turlarini samarali boshqarishga imkon beradi.