Sobes.tech
Middle

TypeScript-də utilitar növlər haqqında danışın.

sobes.tech Süni İntellekt

AI-dan cavab

TypeScript-də utilitar tiplər mövcud məlumat tiplərini yeni tiplərə çevirməyə imkan verən daxili tiplərdir və müxtəlif faydalı əməliyyatlar həyata keçirir. Onlar tiplərin çevikliyini və təkrar istifadə imkanlarını artırmağa kömək edir, kodda artıq təkrarlamaları azaldır.

Əsas utilitar tiplər:

  • Partial<Type>: Type-in bütün xüsusiyyətlərini qeyri-məcburi edən yeni tip yaradır.

    interface User {
      id: number;
      name: string;
      age: number;
    }
    
    type PartialUser = Partial<User>;
    // PartialUser { id?: number; name?: string; age?: number; }
    
  • Readonly<Type>: Type-in bütün xüsusiyyətlərini yalnız oxumaq üçün edən yeni tip yaradır.

    interface Point {
      x: number;
      y: number;
    }
    
    type ReadonlyPoint = Readonly<Point>;
    // ReadonlyPoint { readonly x: number; readonly y: number; }
    
  • Pick<Type, Keys>: Type-dən Keys ilə göstərilən xüsusiyyətləri seçərək tip yaradır.

    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-dən Keys ilə göstərilən xüsusiyyətləri çıxarır.

    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-dən ExcludedUnion-a uyğun olan elementləri çıxarır. Birlik tipləri üçün istifadə olunur.

    type Colors = 'red' | 'green' | 'blue' | 'yellow';
    type PrimaryColors = Exclude<Colors, 'yellow'>;
    // PrimaryColors 'red' | 'green' | 'blue'
    
  • Extract<Type, Union>: Type-dən Union-a uyğun olan elementləri seçir. Birlik tipləri üçün istifadə olunur.

    type AllAnimals = 'dog' | 'cat' | 'fish' | 'bird';
    type PetAnimals = Extract<AllAnimals, 'dog' | 'cat'>;
    // PetAnimals 'dog' | 'cat'
    
  • NonNullable<Type>: Type-dən nullundefined dəyərlərini çıxarır.

    type MaybeString = string | null | undefined;
    type NotNullableString = NonNullable<MaybeString>;
    // NotNullableString string olacaq
    
  • Record<Keys, Type>: Keys-dən olan açarları və Type-dən olan dəyərləri olan obyekt tipi yaradır.

    type CityPopulation = Record<string, number>;
    // CityPopulation { [key: string]: number }
    
    const population: CityPopulation = {
      "Moskva": 12635466,
      "Sankt-Peterburg": 5381033,
    };
    
  • Parameters<Type>: Type funksiyasının parametr tiplərinin tuple-ını qaytarır.

    function greet(name: string, age: number): string {
      return `Salam, ${name}! Sən ${age} yaşındasan.`;
    }
    
    type GreetParams = Parameters<typeof greet>;
    // GreetParams [name: string, age: number]
    
  • ReturnType<Type>: Type funksiyasının geri dönüş dəyərinin tipini qaytarır.

    function calculateSum(a: number, b: number): number {
      return a + b;
    }
    
    type SumResult = ReturnType<typeof calculateSum>;
    // SumResult number
    
  • ConstructorParameters<Type>: Type sinifinin konstruktor parametrlərinin tuple-ını və ya array-ını qaytarır.

    class MyClass {
      constructor(name: string, id: number) {}
    }
    
    type MyClassParams = ConstructorParameters<typeof MyClass>;
    // MyClassParams [name: string, id: number]
    
  • InstanceType<Type>: Type sinifinin nümunə tipini qaytarır.

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

Utilitar tiplərdən istifadə kodu daha təhlükəsiz, daha asan baxımlı və daha ifadəli edir, mürəkkəb məlumat tiplərini effektiv idarə etməyə imkan verir.