Покращуй свої навички TypeScript 🎮

pic

Ласкаво просимо до епічної подорожі освоєння TypeScript! Незалежно від того, чи ви початківець, який лише занурюється в мову, чи досвідчений розробник, що прагне підняти свої навички на новий рівень, цей блог допоможе вам загострити ваші навички TypeScript, розбиваючи складні типи, як босів у відеоіграх. Надихнувшись чудовою доповіддю Дарії Каравей на JSConf 2024 у Будапешті, ми передаємо вам її найкращі ідеї та приклади, щоб підняти ваш TypeScript-геймінг. Готові? Поїхали! ✨

Рівень 1: Об'єднання та умовні типи

Наш перший бос знайомить нас з Union Types (Типи об'єднання) та Generics (Універсальні типи). Це основні концепції, які роблять TypeScript таким потужним.

Типи об'єднання (Union Types)

Типи об'єднання дозволяють вказати, що значення може бути одним з кількох типів:

type UnionType = null | undefined | false | 0 | "";

Це означає, що значення може бути null, undefined, false, 0 або порожнім рядком — все це вважається хибним значенням у JavaScript.

Універсальні типи (Generics)

Універсальні типи дозволяють визначити тип як заповнювач, який ви можете використовувати пізніше:

type GenericType = T | Array;

Наприклад:

type StringOrStringArray = GenericType;  
// Це еквівалентно: string | string[]

Умовні типи (Conditional Types)

Умовні типи працюють як оператор if для типів:

type IsTruthy = T extends null | undefined | false | 0 | "" ? false : true;

Ось як це працює на практиці:

type NotTruthy = IsTruthy; // false  
type PassesTruthy = IsTruthy; // true

Це дозволяє створювати типи, які оцінюють, чи є значення істинним чи ні.

Рівень 2: Утилітні типи та оператор keyof

Бос другого рівня знайомить нас з утилітними типами, такими як Omit, та оператором keyof. Давайте розберемо це крок за кроком.

Оператор keyof

Оператор keyof витягує всі ключі з типу як об'єднання рядкових літералів:

type ExampleObjectType = {  
 a: string;  
 b: number;  
 c: string[];  
};  

type Keys = keyof ExampleObjectType; // "a" | "b" | "c"

Утиліта Exclude

Exclude видаляє певні елементи з об'єднання:

type ExcludeKey = "b";  
type KeysToInclude = Exclude<"a" | "b" | "c", ExcludeKey>;  
// "a" | "c"

Утиліта Pick

Pick створює новий тип, що містить лише вказані ключі:

type PickedObject = Pick;  
// {  
// a: string;  
// c: string[];  
// }

Комбінування: Omit

Omit видаляє певні ключі з типу, поєднуючи Pick і Exclude:

type Omit = Pick>;  

type ObjectWithoutB = Omit;  
// {  
// a: string;  
// c: string[];  
// }

Поєднуючи Pick і Exclude, ви можете створювати чисті та багаторазові утилітні типи для будь-якого сценарію.

Висновки

Ми піднялися на рівень, освоївши основи Типів об'єднання (Union Types), Універсальних типів (Generics) і Умовних типів (Conditional Types), і перемогли боса другого рівня, освоївши оператор keyof та утилітні типи, такі як Omit. З цими інструментами ви зможете писати більш елегантний, структурований і потужний код на TypeScript.

TypeScript — це як відеогра: кожна нова функція, яку ви вивчаєте, відкриває більше можливостей та універсальності. Продовжуйте практикувати, експериментуйте з цими прикладами, і скоро ви станете героєм вашої подорожі TypeScript.

Щасливого кодування! 🎮

Перекладено з: Level Up Your TypeScript Skills 🎮

Leave a Reply

Your email address will not be published. Required fields are marked *