TypeScripts inbyggda verktygstyper och de nyckelord som följer med dem, grupperade efter uppgift: forma om ett objekt, filtrera en union, beskriva en funktion, omvandla en litteral sträng och fånga typer från värden. Varje rad visar typen och ett riktigt alias du skulle skriva.
Verktygstyper är generiska funktioner för typer: de tar en eller två typer och returnerar en ny, så att du slipper skriva ut varje form för hand. De utmärker sig för härledda typer, där sanningens källa är en annan typ eller ett värde och du vill att dina typer ska följa den automatiskt. Tumregeln är att härleda i stället för att duplicera: ändrar du källan följer den härledda typen med.
Referanstabell · 22 poster
Verktygstyper i TypeScriptExplained
22 of 22 rows
Objektform
T där varje egenskap gjorts valfri.
type Update = Partial<User>
T där varje egenskap gjorts obligatorisk.
type Strict = Required<Opts>
T där varje egenskap gjorts skrivskyddad.
type Frozen = Readonly<User>
T där endast nycklarna i K behålls.
type Preview = Pick<User, "id" | "name">
T där nycklarna i K tagits bort.
type SafeUser = Omit<User, "password">
Ett objekt vars nycklar är K och vars värden är V.
type Scores = Record<string, number>
Unionfiltrering
Unionen U utan medlemmar som är tilldelningsbara till X.
type NoNull = Exclude<T, null>
Medlemmarna i U som är tilldelningsbara till X.
type OnlyStr = Extract<T, string>
T utan null och undefined.
type Def = NonNullable<T>
Funktionstyper
En tupel av parametertyperna för funktionen F.
type P = Parameters<typeof fn>
Typen som funktionen F returnerar.
type R = ReturnType<typeof fn>
En tupel av parametertyperna för konstruktorn F.
type C = ConstructorParameters<typeof Date>
Instanstypen som konstruktorn F producerar.
type D = InstanceType<typeof Date>
Typen som ett Promise löses till, rekursivt.
type Data = Awaited<Promise<User>>
Omvandling av litterala strängar
Stränglitteralen S med versaler.
type A = Uppercase<"abc"> // "ABC"
Stränglitteralen S med gemener.
type B = Lowercase<"ABC"> // "abc"
S med första tecknet i versal.
type C = Capitalize<"abc"> // "Abc"
S med första tecknet i gemen.
type D = Uncapitalize<"Abc"> // "aBc"
Relaterade nyckelord
En union av egenskapsnycklarna för objekttypen T.
type K = keyof User
Typen av ett värde, utan att skriva ut den igen.
type Config = typeof defaults
Fånga en typ inuti en villkorstyp för återanvändning.
type El<T> = T extends Array<infer I> ? I : never
Välj typ X eller Y beroende på om T är tilldelningsbar till U.