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
T
stają się opcjonalne. - Wymagane<T> – Sprawia, że wszystkie właściwości typu
T
stają się wymagane. - Readonly<T> – Zmienia wszystkie właściwości typu
T
na tylko do odczytu. - Pick<T, K> – Wybiera zestaw właściwości
K
z typuT
. - Omit<T, K> – Usuwa zestaw właściwości
K
z typuT
. - Rekord<K, T> – Konstruuje typ obiektu z kluczami typu
K
i 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.