Sobes.tech
Middle

Meséljen a utility típusokról a TypeScript-ben.

sobes.tech MI

Válasz az MI-től

TypeScript Utility típusai – beépített segédtípusok, amelyek megkönnyítik a típusokon végzett általános műveleteket, például átalakításokat, kivonásokat vagy bizonyos tulajdonságok kizárását. Ezek növelik a kód rugalmasságát és olvashatóságát.

Fő hasznos típusok:

  • Partial<Type>: Létrehoz egy típust, ahol a Type összes tulajdonsága opcionális.
    // Olyan típus létrehozása, ahol a 'name' és 'age' tulajdonságok opcionálisak
    type PartialUser = Partial<{ name: string; age: number }>;
    
  • Readonly<Type>: Létrehoz egy típust, ahol a Type összes tulajdonsága csak olvasható.
    // Olyan típus létrehozása, ahol a 'name' és 'age' tulajdonságok csak olvashatók
    type ReadonlyUser = Readonly<{ name: string; age: number }>;
    
  • Pick<Type, Keys>: Kiválaszt egy halmazt a Type tulajdonságaiból a Keys szerint. A Keys lehet string literál vagy uniója string literáloknak.
    // Olyan típus létrehozása, amely csak a 'name' tulajdonságot tartalmazza
    type UserWithName = Pick<{ name: string; age: number }, 'name'>;
    
  • Omit<Type, Keys>: Kizár egy halmazt a Type tulajdonságaiból a Keys szerint.
    // Olyan típus létrehozása, amely csak az 'age' tulajdonságot tartalmazza
    type UserWithoutName = Omit<{ name: string; age: number }, 'name'>;
    
  • Exclude<UnionType, ExcludedMembers>: Kizár egy tagot az unióból, amely hozzárendelhető az ExcludedMembers-hez.
    // Olyan típus létrehozása, amely kizárja a 'null'-t az unióból
    type NonNullableString = Exclude<string | null | undefined, null | undefined>;
    
  • Extract<Type, Union>: Kivonja az összes olyan tagot a Type-ból, amely hozzárendelhető a Union-hoz.
    // Kivonja a 'null' és 'undefined' típusokat az unióból
    type JustNullOrUndefined = Extract<string | null | undefined, null | undefined>;
    
  • NonNull<Type>: Kizárja a null és undefined típusokat a Type-ból.
    // Olyan típus létrehozása, amely kizárja a 'null' és 'undefined' típusokat
    type NonNullStringOrNumber = NonNullable<string | number | null | undefined>;
    
  • Parameters<Type>: Megkapja egy függvény Type paramétereinek típusait tuple-ként.
    // Megkapja egy függvény paramétereinek típusait: [string, number]
    type FuncParams = Parameters<(a: string, b: number) => void>;
    
  • ReturnType<Type>: Megkapja egy függvény Type visszatérési értékének típusát.
    // Megkapja egy függvény visszatérési értékének típusát: number
    type FuncReturn = ReturnType<() => number>;
    
  • ConstructorParameters<Type>: Kinyeri a konstruktor típusának paramétereit.
    // Megkapja a konstruktor paramétereinek típusait a osztály esetében: [string, number]
    type MyClassParams = ConstructorParameters<typeof MyClass>;
    
    class MyClass {
        constructor(name: string, age: number) {}
    }
    
  • InstanceType<Type>: Kinyeri a konstruktor típusának példány típusát.
    // Kinyeri az osztály példány típusát: MyClass
    type MyClassInstance = InstanceType<typeof MyClass>;
    
    class MyClass {
        constructor(name: string, age: number) {}
    }
    

A utility típusok használata hozzájárul a típusbiztosabb, rugalmasabb és könnyebben karbantartható kód kialakításához.