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 typu T.
  • Omit<T, K> – Usuwa zestaw właściwości K z typu T.
  • Rekord<K, T> – Konstruuje typ obiektu z kluczami typu K i wartościami typu T.

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.