Sobes.tech
Middle

Дар бораи намудҳои utility дар TypeScript нақл кунед.

sobes.tech AI

Ҷавоб аз AI

Намудҳои Utility дар TypeScript – инҳо намуди кӯмакии дарунсохт мебошанд, ки кори умумиро дар бораи намудҳо содда мекунанд, ба монанди табдилҳо, истисноҳо ё хориҷ кардани хусусиятҳои муайян. Онҳо чандирӣ ва хонданро дар коди баланд мебардоранд.

Намудҳои асосии муфид:

  • 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-ро интихоб мекунад. Keys метавонад як литерал ё якҷоягии литералҳои сатр бошад.
    // Намуди, ки танҳо хусусияти 'name' дорад
    type UserWithName = Pick<{ name: string; age: number }, 'name'>;
    
  • Omit<Type, Keys>: Намудро месозад, ки аз Type маҷмӯи хусусиятҳои Keys-ро хориҷ мекунад.
    // Намуди, ки танҳо хусусияти 'age' дорад
    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-ро аз Type хориҷ мекунад.
    // Намуди, ки 'null' ва 'undefined'-ро хориҷ мекунад
    type NonNullStringOrNumber = NonNullable<string | number | null | undefined>;
    
  • Parameters<Type>: Намуди параметрҳои функсияи Type-ро ҳамчун tuple мегирад.
    // Намуди параметрҳои функсия: [string, number]
    type FuncParams = Parameters<(a: string, b: number) => void>;
    
  • ReturnType<Type>: Намуди арзиши баргардонидашудаи функсияи 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) {}
    }
    

Истифодаи намуди кӯмакӣ ба сохтани коди бехатартар, чандиртар ва осонтар барои нигоҳдорӣ кӯмак мекунад.