Skip to content

TypeScript-værktøjstyper forklaret

TypeScripts indbyggede værktøjstyper og de nøgleord, der følger med dem, grupperet efter job: omform et objekt, filtrér en union, beskriv en funktion, transformér en string-literal og indfang typer fra værdier. Hver række viser typen og et rigtigt alias, du ville skrive.

Værktøjstyper er generiske funktioner for typer: de tager en eller to typer og returnerer en ny, så du ikke skal stave hver form i hånden. De skinner ved afledte typer, hvor sandhedskilden er en anden type eller en værdi, og du vil have, at dine typer følger den automatisk. Tommelfingerreglen er at aflede frem for at duplikere: ændrer du kilden, følger den afledte type med.

Referencetabel · 22 poster
22 of 22 rows
Objektform
T med alle egenskaber gjort valgfrie.type Update = Partial<User>
T med alle egenskaber gjort påkrævede.type Strict = Required<Opts>
T med alle egenskaber gjort readonly.type Frozen = Readonly<User>
T hvor kun nøglerne i K er bevaret.type Preview = Pick<User, "id" | "name">
T hvor nøglerne i K er fjernet.type SafeUser = Omit<User, "password">
Et objekt hvis nøgler er K, og hvis værdier er V.type Scores = Record<string, number>
Union-filtrering
Unionen U med medlemmer, der kan tildeles til X, fjernet.type NoNull = Exclude<T, null>
Medlemmerne af U, der kan tildeles til X.type OnlyStr = Extract<T, string>
T med null og undefined fjernet.type Def = NonNullable<T>
Funktionstyper
En tuple af parametertyperne for funktionen F.type P = Parameters<typeof fn>
Typen som funktionen F returnerer.type R = ReturnType<typeof fn>
En tuple af parametertyperne for konstruktøren F.type C = ConstructorParameters<typeof Date>
Instanstypen som konstruktøren F producerer.type D = InstanceType<typeof Date>
Typen som et Promise resolver til, rekursivt.type Data = Awaited<Promise<User>>
Transformationer af string-literals
String-litteralet S med store bogstaver.type A = Uppercase<"abc"> // "ABC"
String-litteralet S med små bogstaver.type B = Lowercase<"ABC"> // "abc"
S med det første tegn med stort.type C = Capitalize<"abc"> // "Abc"
S med det første tegn med småt.type D = Uncapitalize<"Abc"> // "aBc"
Relaterede nøgleord
En union af egenskabsnøglerne i objekttypen T.type K = keyof User
Typen af en værdi, uden at stave den igen.type Config = typeof defaults
Indfanger en type inde i en betinget type til genbrug.type El<T> = T extends Array<infer I> ? I : never
Vælger typen X eller Y afhængigt af, om T kan tildeles til U.type IsStr<T> = T extends string ? true : false