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 vlastnostiTypevoliteľ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 vlastnostiTypeiba 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íKeyszType.Keysmôž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íKeyszType.// 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 členovExcludedMemberszUnionType.// Vytvára typ, ktorý vylučuje 'null' z unie type NonNullableString = Exclude<string | null | undefined, null | undefined>;Extract<Type, Union>: Extrahuje zTypevšetkých členov, ktoré sú priraditeľné kUnion.// Extrahuje 'null' a 'undefined' z unie type JustNullOrUndefined = Extract<string | null | undefined, null | undefined>;NonNull<Type>: VylučujenullaundefinedzType.// Vytvára typ, ktorý vylučuje 'null' a 'undefined' type NonNullStringOrNumber = NonNullable<string | number | null | undefined>;Parameters<Type>: Získava typy parametrov funkcieTypeako tuple.// Získava typy parametrov funkcie: [string, number] type FuncParams = Parameters<(a: string, b: number) => void>;ReturnType<Type>: Získava typ návratovej hodnoty funkcieType.// 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.