На одну сторінку
Шпаргалка · TypeScript Essentials
Те, що варто тримати під рукою. Якщо рядок незрозумілий — повернись у відповідний урок, не гугли десять статей поспіль.
Типи
| Що | Як |
|---|
| Літерал | type Status = "idle" | "loading" |
| Об'єкт | type User = { id: string; name?: string } |
| Масив | string[] / Array<User> |
| Кортеж | type Pair = [string, number] |
| Функція | type Fn = (x: string) => void |
| Перетин | type A = B & C |
Звуження
| Що | Як |
|---|
| typeof | if (typeof x === "string") |
| рівність | if (x.kind === "circle") |
| in | if ("error" in result) |
| instanceof | if (e instanceof Error) |
| guard | function isUser(x: unknown): x is User |
Утиліти
| Що | Як |
|---|
| Partial | Partial<User> |
| Pick / Omit | Pick<User, "id"> Omit<User, "email"> |
| Record | Record<"a" | "b", number> |
| keyof | type K = keyof User |
| typeof | type R = typeof routes |
| Awaited | Awaited<ReturnType<typeof fn>> |
Не роби так
| Що | Як |
|---|
| any | вимикає перевірку по ланцюжку |
| as User | не валідує дані з API |
| ! | user.email! — ти обіцяєш те, чого може не бути |
| Function | пиши (x: T) => R |
| object | пиши конкретні поля |