Jak tworzyć i używać typów narzędzi TypeScript
TypeScript udostępnia zestaw typów narzędziowych, które ułatwiają transformację i zarządzanie istniejącymi typami. Te wbudowane typy narzędziowe pozwalają deweloperom manipulować typami na różne sposoby, pomagając uprościć kod i uniknąć powtórzeń. Ten przewodnik omawia niektóre z najpopularniejszych typów narzędziowych oraz sposób ich tworzenia i używania w projekcie TypeScript.
Czym są typy narzędzi TypeScript?
Typy użytkowe w TypeScript to wstępnie zdefiniowane typy, które pomagają w transformacji innych typów. Mogą być używane do tworzenia nowych typów na podstawie istniejących, poprzez wybieranie, pomijanie lub modyfikowanie właściwości. Odgrywają one zasadniczą rolę w utrzymaniu czystego, wielokrotnego użytku kodu.
Najczęściej używane typy narzędzi TypeScript
Oto niektóre z najczęściej używanych typów narzędzi TypeScript:
- Partial<T> – Sprawia, że wszystkie właściwości typu
Tstają się opcjonalne. - Wymagane<T> – Sprawia, że wszystkie właściwości typu
Tstają się wymagane. - Readonly<T> – Zmienia wszystkie właściwości typu
Tna tylko do odczytu. - Pick<T, K> – Wybiera zestaw właściwości
Kz typuT. - Omit<T, K> – Usuwa zestaw właściwości
Kz typuT. - Rekord<K, T> – Konstruuje typ obiektu z kluczami typu
Ki wartościami typuT.
Przykład: Używanie częściowego<T>
Typ narzędzia Partial sprawia, że wszystkie właściwości interfejsu są opcjonalne. Oto jak można go używać:
interface User {
name: string;
age: number;
email: string;
}
const updateUser = (user: Partial<User>) => {
// Update logic
};
updateUser({ name: "John" });W tym przykładzie updateUser akceptuje argument typu Partial<User>, co oznacza, że wymagane są tylko niektóre właściwości interfejsu User.
Przykład: Używanie Pick<T, K>
Typ narzędzia Pick umożliwia wybranie podzbioru właściwości z typu:
interface User {
name: string;
age: number;
email: string;
}
type UserContactInfo = Pick<User, "name" | "email">;
const contactInfo: UserContactInfo = {
name: "John",
email: "john@example.com"
};Tutaj Pick<User, “name” | “email”> tworzy nowy typ UserContactInfo zawierający jedynie właściwości name i email z oryginalnego interfejsu User.
Przykład: Używanie opcji Pomiń<T, K>
Typ narzędzia Omit usuwa określone właściwości z typu:
interface User {
name: string;
age: number;
email: string;
}
type UserWithoutEmail = Omit<User, "email">;
const user: UserWithoutEmail = {
name: "John",
age: 30
};W tym przykładzie typ UserWithoutEmail został utworzony przez pominięcie właściwości email w interfejsie User.
Tworzenie niestandardowych typów narzędzi
Niestandardowe typy narzędzi można również tworzyć przy użyciu zaawansowanych funkcji TypeScript, takich jak typy warunkowe, typy mapowane i inne. Oto prosty przykład niestandardowego typu narzędzi, który sprawia, że wszystkie właściwości są opcjonalne:
type MyPartial<T> = {
[P in keyof T]?: T[P];
};
interface User {
name: string;
age: number;
email: string;
}
const user: MyPartial<User> = {
name: "Alice"
};Ten niestandardowy typ MyPartial działa podobnie do wbudowanego typu narzędziowego TypeScript Partial.
Wniosek
Typy narzędziowe TypeScript są niezbędną cechą do pracy z typami w elastyczny i wielokrotnego użytku sposób. Wykorzystując te typy narzędzi, kod może być bardziej zwięzły i łatwiejszy w utrzymaniu. Niezależnie od tego, czy używasz wbudowanych typów narzędziowych, takich jak Partial, Pick i Omit, czy tworzysz własne, znacząco ulepszają one system typów TypeScript.