Sobes.tech
Middle

TypeScriptтеги пайдалуу түрлөрү жөнүндө айтып бериңиз.

sobes.tech AI

AIден жооп

TypeScriptтеги пайдалуу түрлөрдү колдонуу — бул жогорку деңгээлде маалыматтардын татаал түрлөрүн натыйжалуу башкаруу жолу. Бул ички түрлөрү бар, алар бар түрлөрдү жаңы түрлөргө айландырууга, ар кандай пайдалуу операцияларды жүргүзүүгө жана коддун ийкемдүүлүгүн жана кайра колдонулушун жогорулатууга мүмкүндүк берет. Негизги пайдалуу түрлөргө төмөнкүлөр кирет:

  • Partial<Type>: жаңы түр түзөт, анда Type бардык мүлктөрү милдеттүү эмес.

    interface User {
      id: number;
      name: string;
      age: number;
    }
    
    type PartialUser = Partial<User>;
    // PartialUser болот { id?: number; name?: string; age?: number; }
    
  • Readonly<Type>: жаңы түр түзөт, анда бардык Type мүлктөрү окууга гана болот.

    interface Point {
      x: number;
      y: number;
    }
    
    type ReadonlyPoint = Readonly<Point>;
    // ReadonlyPoint болот { readonly x: number; readonly y: number; }
    
  • Pick<Type, Keys>: белгилүү бир Keys тизмесинен Type ичинен тандалган мүлктөрдү алат.

    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>: белгилүү бир Keys тизмесин Type ичинен алып салат.

    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 ичинен ExcludedUnion менен бирге келген элементтерди алып салат.

    type Colors = 'red' | 'green' | 'blue' | 'yellow';
    type PrimaryColors = Exclude<Colors, 'yellow'>;
    // PrimaryColors болот 'red' | 'green' | 'blue'
    
  • Extract<Type, Union>: Type ичинен Union менен бирге келген элементтерди тандоого алат.

    type AllAnimals = 'dog' | 'cat' | 'fish' | 'bird';
    type PetAnimals = Extract<AllAnimals, 'dog' | 'cat'>;
    // PetAnimals болот 'dog' | 'cat'
    
  • NonNullable<Type>: Type ичинен null жана undefined маанилерин алып салат.

    type MaybeString = string | null | undefined;
    type NotNullableString = NonNullable<MaybeString>;
    // NotNullableString болот string
    
  • Record<Keys, Type>: объекттин түрүн түзөт, анын мүчөлөрү Keys тизмесинен жана маанилери Type болот.

    type CityPopulation = Record<string, number>;
    // CityPopulation болот { [key: string]: number }
    
    const population: CityPopulation = {
      "Москва": 12635466,
      "Санкт-Петербург": 5381033,
    };
    
  • Parameters<Type>: функциянын параметрлеринин түрлөрүнүн тизмесин кайтарат.

    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>: функциянын кайтаруучу маанисинин түрүн кайтарат.

    function calculateSum(a: number, b: number): number {
      return a + b;
    }
    
    type SumResult = ReturnType<typeof calculateSum>;
    // SumResult болот number
    
  • ConstructorParameters<Type>: класс конструкторунун параметрлеринин түрлөрүнүн тизмесин кайтарат.

    class MyClass {
      constructor(name: string, id: number) {}
    }
    
    type MyClassParams = ConstructorParameters<typeof MyClass>;
    // MyClassParams болот [name: string, id: number]
    
  • InstanceType<Type>: класс Type үлгүсүнүн түрүн кайтарат.

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

Пайдалуу түрлөрдү колдонуу кодду коопсуз, оңой тейлөө жана көбүрөөк билдирет, бул татаал маалыматтардын түрлөрүн эффективдүү башкарууга мүмкүндүк берет.