TypeScript — потужний інструмент, який допомагає забезпечити типобезпеку в JavaScript-додатках. Однією з корисних, але менш відомих функцій є утиліта типу Extract
. Вона дозволяє створювати гнучкі та типобезпечні функції. Розглянемо, як її застосовувати, за допомогою простого прикладу.
Уявімо, що у вас є кілька функцій обробки, які вимагають різних параметрів. Ось приклад з різними типами завдань:
type TaskType = "PRINTTEXT" | "CALCULATESUM" | "FORMAT_DATE";
interface PrintTextProps {
content: string;
}
interface CalculateSumProps {
numbers: number[];
}
interface FormatDateProps {
date: Date;
}
type TaskPropsUnion = { type: "PRINTTEXT"; props: PrintTextProps }
| { type: "CALCULATESUM"; props: CalculateSumProps }
| { type: "FORMAT_DATE"; props: FormatDateProps };
Кожне завдання має своє поле props
, що містить відповідні параметри. Тепер, щоб кожна функція отримувала правильні параметри, ми використовуємо утиліту Extract
.
type TaskExecutor = {
[K in T]: (props: Extract<'props'>) => void;
};
Цей тип гарантує, що функції виконуватимуть завдання тільки з правильними параметрами, полегшуючи роботу з типами та підвищуючи типобезпеку.
Таким чином, використовуючи утиліту Extract
, ми можемо забезпечити точну відповідність типів для кожної функції, що допомагає уникнути помилок на етапі виконання.
Цей підхід дозволяє працювати з різними типами завдань, гарантуючи, що кожне завдання отримає тільки необхідні йому параметри. Такий підхід забезпечує надійність і підтримку типобезпеки на всіх етапах розробки.
Перекладено з: Understanding TypeScript’s Extract Utility