Hur man skapar och använder TypeScript-verktygstyper
TypeScript tillhandahåller en uppsättning verktygstyper som gör det lättare att transformera och hantera befintliga typer. Dessa inbyggda verktygstyper tillåter utvecklare att manipulera typer på olika sätt, vilket hjälper till att förenkla koden och undvika upprepning. Den här guiden utforskar några av de vanligaste verktygstyperna och hur de kan skapas och användas i ett TypeScript-projekt.
Vad är TypeScript-verktygstyper?
Verktygstyper i TypeScript är fördefinierade typer som hjälper till att transformera andra typer. De kan användas för att skapa nya typer baserat på befintliga genom att antingen välja, utelämna eller ändra egenskaper. De spelar en viktig roll för att upprätthålla ren, återanvändbar kod.
Vanligt använda TypeScript-verktygstyper
Här är några av de vanligaste TypeScript-verktygstyperna:
- Partiell<T> – Gör alla egenskaper av typen
T
valfria. - Obligatorisk<T> – Kräver alla egenskaper av typen
T
. - Readonly<T> – Gör alla egenskaper av typen
T
skrivskyddade. - Välj<T, K> – Väljer en uppsättning egenskaper
K
från typenT
. - Utelämna<T, K> – Tar bort en uppsättning egenskaper
K
från typenT
. - Record<K, T> – Konstruerar en objekttyp med nycklar av typen
K
och värden av typenT
.
Exempel: Använda partiell<T>
Verktygstypen Partial
gör alla egenskaper för ett gränssnitt valfria. Så här kan den användas:
interface User {
name: string;
age: number;
email: string;
}
const updateUser = (user: Partial<User>) => {
// Update logic
};
updateUser({ name: "John" });
I det här exemplet accepterar updateUser
ett argument av typen Partial<User>
, vilket betyder att endast några av egenskaperna för User
-gränssnittet krävs.
Exempel: Använda Pick<T, K>
Verktygstypen Pick
gör det möjligt att välja en undergrupp av egenskaper från en typ:
interface User {
name: string;
age: number;
email: string;
}
type UserContactInfo = Pick<User, "name" | "email">;
const contactInfo: UserContactInfo = {
name: "John",
email: "john@example.com"
};
Här skapar Pick<User, “name” | “email”>
en ny typ UserContactInfo
med endast egenskaperna name
och email
från den ursprungliga User
gränssnitt.
Exempel: Använda Omit<T, K>
Verktygstypen Omit
tar bort specificerade egenskaper från en typ:
interface User {
name: string;
age: number;
email: string;
}
type UserWithoutEmail = Omit<User, "email">;
const user: UserWithoutEmail = {
name: "John",
age: 30
};
I det här exemplet skapas UserWithoutEmail
-typen genom att utelämna egenskapen email
från User
-gränssnittet.
Skapa anpassade verktygstyper
Anpassade verktygstyper kan också skapas med TypeScripts avancerade typfunktioner som villkorliga typer, mappade typer och mer. Här är ett enkelt exempel på en anpassad verktygstyp som gör alla egenskaper valfria:
type MyPartial<T> = {
[P in keyof T]?: T[P];
};
interface User {
name: string;
age: number;
email: string;
}
const user: MyPartial<User> = {
name: "Alice"
};
Denna anpassade MyPartial
-typ fungerar på samma sätt som TypeScripts inbyggda Partial
-verktygstyp.
Slutsats
TypeScript-verktygstyper är en viktig funktion för att arbeta med typer på ett flexibelt och återanvändbart sätt. Genom att utnyttja dessa verktygstyper kan koden göras mer kortfattad och underhållbar. Oavsett om du använder inbyggda verktygstyper som Partial
, Pick
och Omit
eller skapar anpassade, förbättrar de TypeScripts typsystem avsevärt.