Skip to content

Užitkové typy v TypeScriptu vysvětleny

Vestavěné užitkové typy TypeScriptu a klíčová slova, která je doprovázejí, seskupená podle úlohy: přeformovat objekt, vyfiltrovat union, popsat funkci, transformovat stringový literál a odvodit typy z hodnot. Každý řádek ukazuje typ a reálný alias, který byste napsali.

Užitkové typy jsou generické funkce pro typy: vezmou jeden nebo dva typy a vrátí nový, takže nemusíte každý tvar vypisovat ručně. Vynikají u odvozených typů, kde je zdrojem pravdy jiný typ nebo hodnota a chcete, aby vaše typy ji sledovaly automaticky. Pravidlo zní: odvozujte, neduplikujte — když změníte zdroj, odvozený typ následuje.

Referenční tabulka · 22 položek
22 of 22 rows
Tvar objektu
T se všemi vlastnostmi jako volitelnými.type Update = Partial<User>
T se všemi vlastnostmi jako povinnými.type Strict = Required<Opts>
T se všemi vlastnostmi jen pro čtení.type Frozen = Readonly<User>
T s ponechanými jen klíči z K.type Preview = Pick<User, "id" | "name">
T s odebranými klíči z K.type SafeUser = Omit<User, "password">
Objekt, jehož klíče jsou K a jehož hodnoty jsou V.type Scores = Record<string, number>
Filtrování unionů
Union U s odebranými členy přiřaditelnými k X.type NoNull = Exclude<T, null>
Členové U, kteří jsou přiřaditelní k X.type OnlyStr = Extract<T, string>
T s odebranými null a undefined.type Def = NonNullable<T>
Typy funkcí
Touple typů parametrů funkce F.type P = Parameters<typeof fn>
Typ, který funkce F vrací.type R = ReturnType<typeof fn>
Touple typů parametrů konstruktoru F.type C = ConstructorParameters<typeof Date>
Typ instance, který konstruktor F vytvoří.type D = InstanceType<typeof Date>
Typ, na který se Promise rekurzivně rozbalí.type Data = Awaited<Promise<User>>
Transformace stringových literálů
Stringový literál S velkými písmeny.type A = Uppercase<"abc"> // "ABC"
Stringový literál S malými písmeny.type B = Lowercase<"ABC"> // "abc"
S s prvním znakem velkým písmenem.type C = Capitalize<"abc"> // "Abc"
S s prvním znakem malým písmenem.type D = Uncapitalize<"Abc"> // "aBc"
Související klíčová slova
Union klíčů vlastností objektového typu T.type K = keyof User
Typ hodnoty, aniž byste jej psali znovu.type Config = typeof defaults
Zachytí typ uvnitř podmíněného typu pro opětovné použití.type El<T> = T extends Array<infer I> ? I : never
Zvolí typ X nebo Y podle toho, zda je T přiřaditelné k U.type IsStr<T> = T extends string ? true : false