Як створювати та використовувати типи службових програм TypeScript
TypeScript надає набір типів утиліт, які полегшують трансформацію існуючих типів і керування ними. Ці вбудовані типи утиліт дозволяють розробникам маніпулювати типами різними способами, допомагаючи спростити код і уникнути повторення. У цьому посібнику розглядаються деякі з найпоширеніших типів утиліт і те, як їх можна створити та використовувати в проекті TypeScript.
Що таке типи утиліт TypeScript?
Допоміжні типи у TypeScript — це попередньо визначені типи, які допомагають трансформувати інші типи. Їх можна використовувати для створення нових типів на основі існуючих шляхом вибору, пропуску або зміни властивостей. Вони відіграють важливу роль у підтримці чистого, багаторазового коду.
Часто використовувані типи службових програм TypeScript
Ось деякі з найбільш часто використовуваних типів утиліт TypeScript:
- Частково<T> – робить усі властивості типу
T
необов’язковими. - Необхідно<T> – робить обов’язковими всі властивості типу
T
. - Лише для читання<T> – робить усі властивості типу
T
доступними лише для читання. - Pick<T, K> – вибирає набір властивостей
K
із типуT
. - Пропустити<T, K> – видаляє набір властивостей
K
із типуT
. - Запис<K, T> – створює тип об’єкта з ключами типу
K
і значеннями типуT
.
Приклад: використання Partial<T>
Тип утиліти Partial
робить усі властивості інтерфейсу необов’язковими. Ось як його можна використовувати:
interface User {
name: string;
age: number;
email: string;
}
const updateUser = (user: Partial<User>) => {
// Update logic
};
updateUser({ name: "John" });
У цьому прикладі updateUser
приймає аргумент типу Partial<User>
, тобто лише деякі властивості Потрібен інтерфейс користувача
.
Приклад: використання Pick<T, K>
Тип утиліти Pick
дозволяє вибрати підмножину властивостей із типу:
interface User {
name: string;
age: number;
email: string;
}
type UserContactInfo = Pick<User, "name" | "email">;
const contactInfo: UserContactInfo = {
name: "John",
email: "john@example.com"
};
Тут Pick<User, “name” | “email”>
створює новий тип UserContactInfo
лише з ім’ям
і Властивості електронної пошти
з оригінального інтерфейсу користувача
.
Приклад: використання Omit<T, K>
Тип утиліти Omit
видаляє вказані властивості з типу:
interface User {
name: string;
age: number;
email: string;
}
type UserWithoutEmail = Omit<User, "email">;
const user: UserWithoutEmail = {
name: "John",
age: 30
};
У цьому прикладі тип UserWithoutEmail
створюється шляхом пропуску властивості email
в інтерфейсі User
.
Створення спеціальних типів утиліт
Спеціальні типи утиліт також можна створювати за допомогою розширених функцій типу TypeScript, таких як умовні типи, зіставлені типи тощо. Ось простий приклад спеціального типу утиліти, який робить усі властивості необов’язковими:
type MyPartial<T> = {
[P in keyof T]?: T[P];
};
interface User {
name: string;
age: number;
email: string;
}
const user: MyPartial<User> = {
name: "Alice"
};
Цей спеціальний тип MyPartial
працює подібно до вбудованого типу утиліти TypeScript Partial
.
Висновок
Типи утиліт TypeScript є важливою функцією для гнучкої та багаторазової роботи з типами. Використовуючи ці типи утиліт, можна зробити код більш лаконічним і зручним для обслуговування. Незалежно від того, чи використовують вбудовані типи утиліт, як-от Частково
, Вибрати
та Пропустити
, чи створюють спеціальні, вони значно вдосконалюють систему типів TypeScript.