Sobes.tech
Middle

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

sobes.tech AI

AIден жооп

TypeScriptтеги Utility – бул алдын ала түзүлгөн жардамчы түрлөр, алар түрлөр үстүндө жалпы операцияларды жеңилдетет, мисалы түрлөрдү өзгөртүү, чыгарып алуу же белгилүү мүнөздөмөлөрдү чыгарып салуу. Алар коддун ийкемдүүлүгүн жана окумдуулугун жогорулатат.

Негизги пайдалуу түрлөр:

  • Partial<Type>: Бардык Type мүнөздөмөлөрү милдеттүү эмес түр түзөт.
    // `name` жана `age` мүнөздөмөлөрү милдеттүү эмес түр түзөт
    type PartialUser = Partial<{ name: string; age: number }>;
    
  • Readonly<Type>: Бардык Type мүнөздөмөлөрү гана окууга арналган түр түзөт.
    // `name` жана `age` мүнөздөмөлөрү гана окууга арналган
    type ReadonlyUser = Readonly<{ name: string; age: number }>;
    
  • Pick<Type, Keys>: Type ичинен Keys тизмесиндеги мүнөздөмөлөрдү тандайт.
    // `name` мүнөздөмөсү гана камтылган түр түзөт
    type UserWithName = Pick<{ name: string; age: number }, 'name'>;
    
  • Omit<Type, Keys>: Type ичинен Keys тизмесиндеги мүнөздөмөлөрдү чыгарып салат.
    // `name` мүнөздөмөсү жок түр түзөт
    type UserWithoutName = Omit<{ name: string; age: number }, 'name'>;
    
  • Exclude<UnionType, ExcludedMembers>: UnionType ичинен ExcludedMembers менен шайкеш келген мүчөлөрдү чыгарып салат.
    // `null` менен шайкеш келген мүчөлөрдү чыгарып салган түр
    type NonNullableString = Exclude<string | null | undefined, null | undefined>;
    
  • Extract<Type, Union>: Type ичинен Union менен шайкеш келген мүчөлөрдү чыгарып алат.
    // `null` жана `undefined` чыгарып салынган
    type JustNullOrUndefined = Extract<string | null | undefined, null | undefined>;
    
  • NonNull<Type>: null жана undefined чыгарып салган түр түзөт.
    // `null` жана `undefined` чыгарып салган түр
    type NonNullStringOrNumber = NonNullable<string | number | null | undefined>;
    
  • Parameters<Type>: Функциянын параметрлеринин түрлөрүн кортеж түрүндө алат.
    // Функциянын параметрлеринин түрлөрү: [string, number]
    type FuncParams = Parameters<(a: string, b: number) => void>;
    
  • ReturnType<Type>: Функциянын кайтаруучу маанисинин түрүн алат.
    // Функциянын кайтаруучу маанисинин түрү: number
    type FuncReturn = ReturnType<() => number>;
    
  • ConstructorParameters<Type>: Конструктордун параметрлеринин түрлөрүн чыгарып алат.
    // Класс конструкторунун параметрлеринин түрлөрү: [string, number]
    type MyClassParams = ConstructorParameters<typeof MyClass>;
    
    class MyClass {
        constructor(name: string, age: number) {}
    }
    
  • InstanceType<Type>: Конструктордун типинин инстанциясынын түрүн чыгарып алат.
    // Класс инстанциясынын түрү: MyClass
    type MyClassInstance = InstanceType<typeof MyClass>;
    
    class MyClass {
        constructor(name: string, age: number) {}
    }
    

Utility типтерди колдонуу – бул көбүрөөк типке коопсуз, ийкемдүү жана оңой колдоого алынган код түзүүгө жардам берет.