Sobes.tech
Middle

Povedzte o utility typoch v TypeScript.

sobes.tech AI

Odpoveď od AI

Typy utility v TypeScript – sú vstavané pomocné typy, ktoré zjednodušujú všeobecné operácie nad typmi, ako sú transformácie, extrakcie alebo vylúčenia určitých vlastností. Zvyšujú flexibilitu a čitateľnosť kódu.

Hlavné užitočné typy:

  • Partial<Type>: Vytvára typ, v ktorom sú všetky vlastnosti Type voliteľné.
    // Vytvára typ s voliteľnými vlastnosťami 'name' a 'age'
    type PartialUser = Partial<{ name: string; age: number }>;
    
  • Readonly<Type>: Vytvára typ, v ktorom sú všetky vlastnosti Type iba na čítanie.
    // Vytvára typ s vlastnosťami 'name' a 'age', dostupnými iba na čítanie
    type ReadonlyUser = Readonly<{ name: string; age: number }>;
    
  • Pick<Type, Keys>: Vytvára typ výberom sady vlastností Keys z Type. Keys môže byť reťazcový literál alebo zjednotenie reťazcových literálov.
    // Vytvára typ obsahujúci iba vlastnosť 'name'
    type UserWithName = Pick<{ name: string; age: number }, 'name'>;
    
  • Omit<Type, Keys>: Vytvára typ vylúčením sady vlastností Keys z Type.
    // Vytvára typ obsahujúci iba vlastnosť 'age'
    type UserWithoutName = Omit<{ name: string; age: number }, 'name'>;
    
  • Exclude<UnionType, ExcludedMembers>: Vytvára typ vylúčením členov ExcludedMembers z UnionType.
    // Vytvára typ, ktorý vylučuje 'null' z unie
    type NonNullableString = Exclude<string | null | undefined, null | undefined>;
    
  • Extract<Type, Union>: Extrahuje z Type všetkých členov, ktoré sú priraditeľné k Union.
    // Extrahuje 'null' a 'undefined' z unie
    type JustNullOrUndefined = Extract<string | null | undefined, null | undefined>;
    
  • NonNull<Type>: Vylučuje null a undefined z Type.
    // Vytvára typ, ktorý vylučuje 'null' a 'undefined'
    type NonNullStringOrNumber = NonNullable<string | number | null | undefined>;
    
  • Parameters<Type>: Získava typy parametrov funkcie Type ako tuple.
    // Získava typy parametrov funkcie: [string, number]
    type FuncParams = Parameters<(a: string, b: number) => void>;
    
  • ReturnType<Type>: Získava typ návratovej hodnoty funkcie Type.
    // Získava typ návratovej hodnoty funkcie: number
    type FuncReturn = ReturnType<() => number>;
    
  • ConstructorParameters<Type>: Extrahuje typy parametrov konštruktora typu konštruktor.
    // Získava typy parametrov konštruktora triedy: [string, number]
    type MyClassParams = ConstructorParameters<typeof MyClass>;
    
    class MyClass {
        constructor(name: string, age: number) {}
    }
    
  • InstanceType<Type>: Extrahuje typ inštancie typu konštruktora.
    // Extrahuje typ inštancie triedy: MyClass
    type MyClassInstance = InstanceType<typeof MyClass>;
    
    class MyClass {
        constructor(name: string, age: number) {}
    }
    

Použitie utility typov prispieva k vytvoreniu bezpečnejšieho, flexibilnejšieho a ľahko udržiavateľného kódu.