TypeScripts eingebaute Utility-Typen und die Schlüsselwörter, die mit ihnen einhergehen, nach Aufgabe gruppiert: ein Objekt umformen, eine Union filtern, eine Funktion beschreiben, ein String-Literal umwandeln und Typen aus Werten ableiten. Jede Zeile zeigt den Typ und ein echtes Alias, das man schreiben würde.
Utility-Typen sind generische Funktionen für Typen: Sie nehmen ein oder zwei Typen und geben einen neuen zurück, sodass Sie nicht jede Form von Hand ausschreiben müssen. Sie glänzen bei abgeleiteten Typen, wo die Quelle der Wahrheit ein anderer Typ oder ein Wert ist und Ihre Typen ihm automatisch folgen sollen. Die Faustregel lautet: ableiten statt duplizieren — ändern Sie die Quelle, folgt der abgeleitete Typ.
Nachschlagetabelle · 22 Einträge
TypeScript-Utility-TypenExplained
22 of 22 rows
Objektform
T mit jeder Eigenschaft optional.
type Update = Partial<User>
T mit jeder Eigenschaft als Pflicht.
type Strict = Required<Opts>
T mit jeder Eigenschaft schreibgeschützt.
type Frozen = Readonly<User>
T, in dem nur die Schlüssel aus K bleiben.
type Preview = Pick<User, "id" | "name">
T, aus dem die Schlüssel aus K entfernt wurden.
type SafeUser = Omit<User, "password">
Ein Objekt, dessen Schlüssel K und dessen Werte V sind.
type Scores = Record<string, number>
Union-Filterung
Die Union U ohne die zu X zuweisbaren Mitglieder.
type NoNull = Exclude<T, null>
Die Mitglieder von U, die zu X zuweisbar sind.
type OnlyStr = Extract<T, string>
T ohne null und undefined.
type Def = NonNullable<T>
Funktionstypen
Ein Tupel der Parametertypen der Funktion F.
type P = Parameters<typeof fn>
Der Typ, den die Funktion F zurückgibt.
type R = ReturnType<typeof fn>
Ein Tupel der Parametertypen des Konstruktors F.
type C = ConstructorParameters<typeof Date>
Der Instanztyp, den der Konstruktor F erzeugt.
type D = InstanceType<typeof Date>
Der Typ, zu dem ein Promise rekursiv auflöst.
type Data = Awaited<Promise<User>>
Transformationen von String-Literalen
Das String-Literal S in Großbuchstaben.
type A = Uppercase<"abc"> // "ABC"
Das String-Literal S in Kleinbuchstaben.
type B = Lowercase<"ABC"> // "abc"
S mit dem ersten Zeichen als Großbuchstaben.
type C = Capitalize<"abc"> // "Abc"
S mit dem ersten Zeichen als Kleinbuchstaben.
type D = Uncapitalize<"Abc"> // "aBc"
Verwandte Schlüsselwörter
Eine Union der Eigenschaftsschlüssel des Objekttyps T.
type K = keyof User
Der Typ eines Wertes, ohne ihn erneut auszuschreiben.
type Config = typeof defaults
Fängt einen Typ innerhalb eines bedingten Typs zum Wiederverwenden ein.
type El<T> = T extends Array<infer I> ? I : never
Wählt den Typ X oder Y, je nachdem, ob T zu U zuweisbar ist.